googleapis/google/cloud/support/v2beta/case.proto
Google APIs a4367c5258 docs: Annotate all names with IDENTIFIER
docs: Use backticks around `username` in documentation for `Actor.email`

PiperOrigin-RevId: 761132326
2025-05-20 10:16:32 -07:00

218 lines
7 KiB
Protocol Buffer

// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
syntax = "proto3";
package google.cloud.support.v2beta;
import "google/api/field_behavior.proto";
import "google/api/resource.proto";
import "google/cloud/support/v2beta/actor.proto";
import "google/protobuf/timestamp.proto";
option csharp_namespace = "Google.Cloud.Support.V2Beta";
option go_package = "cloud.google.com/go/support/apiv2beta/supportpb;supportpb";
option java_multiple_files = true;
option java_outer_classname = "CaseProto";
option java_package = "com.google.cloud.support.v2beta";
option php_namespace = "Google\\Cloud\\Support\\V2beta";
option ruby_package = "Google::Cloud::Support::V2beta";
// The product line a support case may be associated with.
enum ProductLine {
// Unknown product type.
PRODUCT_LINE_UNSPECIFIED = 0;
// Google Cloud
GOOGLE_CLOUD = 1;
// Google Maps
GOOGLE_MAPS = 2;
}
// A Case is an object that contains the details of a support case. It
// contains fields for the time it was created, its priority, its
// classification, and more. Cases can also have comments and attachments that
// get added over time.
//
// A case is parented by a Google Cloud organization or project.
//
// Organizations are identified by a number, so the name of a case parented by
// an organization would look like this:
//
// ```
// organizations/123/cases/456
// ```
//
// Projects have two unique identifiers, an ID and a number, and they look like
// this:
//
// ```
// projects/abc/cases/456
// ```
//
// ```
// projects/123/cases/456
// ```
//
// You can use either of them when calling the API. To learn more
// about project identifiers, see [AIP-2510](https://google.aip.dev/cloud/2510).
message Case {
option (google.api.resource) = {
type: "cloudsupport.googleapis.com/Case"
pattern: "organizations/{organization}/cases/{case}"
pattern: "projects/{project}/cases/{case}"
};
// The status of a support case.
enum State {
// Case is in an unknown state.
STATE_UNSPECIFIED = 0;
// The case has been created but no one is assigned to work on it yet.
NEW = 1;
// The case is currently being handled by Google support.
IN_PROGRESS_GOOGLE_SUPPORT = 2;
// Google is waiting for a response.
ACTION_REQUIRED = 3;
// A solution has been offered for the case, but it isn't yet closed.
SOLUTION_PROVIDED = 4;
// The case has been resolved.
CLOSED = 5;
}
// The case Priority. P0 is most urgent and P4 the least.
enum Priority {
// Priority is undefined or has not been set yet.
PRIORITY_UNSPECIFIED = 0;
// Extreme impact on a production service. Service is hard down.
P0 = 1;
// Critical impact on a production service. Service is currently unusable.
P1 = 2;
// Severe impact on a production service. Service is usable but greatly
// impaired.
P2 = 3;
// Medium impact on a production service. Service is available, but
// moderately impaired.
P3 = 4;
// General questions or minor issues. Production service is fully
// available.
P4 = 5;
}
// Identifier. The resource name for the case.
string name = 1 [(google.api.field_behavior) = IDENTIFIER];
// The short summary of the issue reported in this case.
string display_name = 2;
// A broad description of the issue.
string description = 3;
// The issue classification applicable to this case.
CaseClassification classification = 4;
// The timezone of the user who created the support case.
// It should be in a format IANA recognizes: https://www.iana.org/time-zones.
// There is no additional validation done by the API.
string time_zone = 8;
// The email addresses to receive updates on this case.
repeated string subscriber_email_addresses = 9;
// Output only. The current status of the support case.
State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time this case was created.
google.protobuf.Timestamp create_time = 13
[(google.api.field_behavior) = OUTPUT_ONLY];
// Output only. The time this case was last updated.
google.protobuf.Timestamp update_time = 14
[(google.api.field_behavior) = OUTPUT_ONLY];
// The user who created the case.
//
// Note: The name and email will be obfuscated if the case was created by
// Google Support.
Actor creator = 15;
// A user-supplied email address to send case update notifications for. This
// should only be used in BYOID flows, where we cannot infer the user's email
// address directly from their EUCs.
string contact_email = 35;
// Whether the case is currently escalated.
bool escalated = 17;
// Whether this case was created for internal API testing and should not be
// acted on by the support team.
bool test_case = 19;
// The language the user has requested to receive support in. This should be a
// BCP 47 language code (e.g., `"en"`, `"zh-CN"`, `"zh-TW"`, `"ja"`, `"ko"`).
// If no language or an unsupported language is specified, this field defaults
// to English (en).
//
// Language selection during case creation may affect your available support
// options. For a list of supported languages and their support working hours,
// see: https://cloud.google.com/support/docs/language-working-hours
string language_code = 23;
// The priority of this case.
Priority priority = 32;
}
// A Case Classification represents the topic that a case is about. It's very
// important to use accurate classifications, because they're
// used to route your cases to specialists who can help you.
//
// A classification always has an ID that is its unique identifier.
// A valid ID is required when creating a case.
message CaseClassification {
// The unique ID for a classification. Must be specified for case creation.
//
// To retrieve valid classification IDs for case creation, use
// `caseClassifications.search`.
//
// Classification IDs returned by `caseClassifications.search` are guaranteed
// to be valid for at least 6 months. If a given classification is
// deactiveated, it will immediately stop being returned. After 6 months,
// `case.create` requests using the classification ID will fail.
string id = 3;
// A display name for the classification.
//
// The display name is not static and can change. To uniquely and consistently
// identify classifications, use the `CaseClassification.id` field.
string display_name = 4;
// The full product the classification corresponds to.
Product product = 10;
}
// The product a case may be associated with.
message Product {
// The product line of the Product.
ProductLine product_line = 1;
}