xref: /aosp_15_r20/external/googleapis/google/cloud/support/v2/case.proto (revision d5c09012810ac0c9f33fe448fb6da8260d444cc9)
1// Copyright 2023 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15syntax = "proto3";
16
17package google.cloud.support.v2;
18
19import "google/api/field_behavior.proto";
20import "google/api/resource.proto";
21import "google/cloud/support/v2/actor.proto";
22import "google/protobuf/timestamp.proto";
23
24option csharp_namespace = "Google.Cloud.Support.V2";
25option go_package = "cloud.google.com/go/support/apiv2/supportpb;supportpb";
26option java_multiple_files = true;
27option java_outer_classname = "CaseProto";
28option java_package = "com.google.cloud.support.v2";
29option php_namespace = "Google\\Cloud\\Support\\V2";
30option ruby_package = "Google::Cloud::Support::V2";
31
32// A support case.
33message Case {
34  option (google.api.resource) = {
35    type: "cloudsupport.googleapis.com/Case"
36    pattern: "organizations/{organization}/cases/{case}"
37    pattern: "projects/{project}/cases/{case}"
38  };
39
40  // The status of a support case.
41  enum State {
42    // Case is in an unknown state.
43    STATE_UNSPECIFIED = 0;
44
45    // The case has been created but no one is assigned to work on it yet.
46    NEW = 1;
47
48    // The case is currently being handled by Google support.
49    IN_PROGRESS_GOOGLE_SUPPORT = 2;
50
51    // Google is waiting for a response.
52    ACTION_REQUIRED = 3;
53
54    // A solution has been offered for the case, but it isn't yet closed.
55    SOLUTION_PROVIDED = 4;
56
57    // The case has been resolved.
58    CLOSED = 5;
59  }
60
61  // The case Priority. P0 is most urgent and P4 the least.
62  enum Priority {
63    // Priority is undefined or has not been set yet.
64    PRIORITY_UNSPECIFIED = 0;
65
66    // Extreme impact on a production service. Service is hard down.
67    P0 = 1;
68
69    // Critical impact on a production service. Service is currently unusable.
70    P1 = 2;
71
72    // Severe impact on a production service. Service is usable but greatly
73    // impaired.
74    P2 = 3;
75
76    // Medium impact on a production service.  Service is available, but
77    // moderately impaired.
78    P3 = 4;
79
80    // General questions or minor issues.  Production service is fully
81    // available.
82    P4 = 5;
83  }
84
85  // The resource name for the case.
86  string name = 1;
87
88  // The short summary of the issue reported in this case.
89  string display_name = 2;
90
91  // A broad description of the issue.
92  string description = 3;
93
94  // The issue classification applicable to this case.
95  CaseClassification classification = 4;
96
97  // The timezone of the user who created the support case.
98  // It should be in a format IANA recognizes: https://www.iana.org/time-zones.
99  // There is no additional validation done by the API.
100  string time_zone = 8;
101
102  // The email addresses to receive updates on this case.
103  repeated string subscriber_email_addresses = 9;
104
105  // Output only. The current status of the support case.
106  State state = 12 [(google.api.field_behavior) = OUTPUT_ONLY];
107
108  // Output only. The time this case was created.
109  google.protobuf.Timestamp create_time = 13
110      [(google.api.field_behavior) = OUTPUT_ONLY];
111
112  // Output only. The time this case was last updated.
113  google.protobuf.Timestamp update_time = 14
114      [(google.api.field_behavior) = OUTPUT_ONLY];
115
116  // The user who created the case.
117  //
118  // Note: The name and email will be obfuscated if the case was created by
119  // Google Support.
120  Actor creator = 15;
121
122  // A user-supplied email address to send case update notifications for. This
123  // should only be used in BYOID flows, where we cannot infer the user's email
124  // address directly from their EUCs.
125  string contact_email = 35;
126
127  // Whether the case is currently escalated.
128  bool escalated = 17;
129
130  // Whether this case was created for internal API testing and should not be
131  // acted on by the support team.
132  bool test_case = 19;
133
134  // The language the user has requested to receive support in. This should be a
135  // BCP 47 language code (e.g., `"en"`, `"zh-CN"`, `"zh-TW"`, `"ja"`, `"ko"`).
136  // If no language or an unsupported language is specified, this field defaults
137  // to English (en).
138  //
139  // Language selection during case creation may affect your available support
140  // options. For a list of supported languages and their support working hours,
141  // see: https://cloud.google.com/support/docs/language-working-hours
142  string language_code = 23;
143
144  // The priority of this case.
145  Priority priority = 32;
146}
147
148// A classification object with a product type and value.
149message CaseClassification {
150  // The unique ID for a classification. Must be specified for case creation.
151  //
152  // To retrieve valid classification IDs for case creation, use
153  // `caseClassifications.search`.
154  string id = 3;
155
156  // The display name of the classification.
157  string display_name = 4;
158}
159