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