aboutsummaryrefslogtreecommitdiffhomepage
path: root/third_party/googleapis/google/cloud/support/common.proto
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/googleapis/google/cloud/support/common.proto')
-rw-r--r--third_party/googleapis/google/cloud/support/common.proto334
1 files changed, 334 insertions, 0 deletions
diff --git a/third_party/googleapis/google/cloud/support/common.proto b/third_party/googleapis/google/cloud/support/common.proto
new file mode 100644
index 0000000000..374d69c1f0
--- /dev/null
+++ b/third_party/googleapis/google/cloud/support/common.proto
@@ -0,0 +1,334 @@
+// Copyright 2017 Google Inc.
+//
+// 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.common;
+
+import "google/api/annotations.proto";
+import "google/protobuf/timestamp.proto";
+
+option go_package = "google.golang.org/genproto/googleapis/cloud/support/common;common";
+option java_outer_classname = "CloudSupportProto";
+option java_package = "com.google.cloud.support.common";
+
+
+// A Google Cloud Platform account that identifies support eligibility for a
+// Cloud resource. Currently the Cloud resource can only be an Organization
+// but this might change in future.
+message SupportAccount {
+ // The current state of this SupportAccount.
+ enum State {
+ // Account is in an unknown state.
+ STATE_UNSPECIFIED = 0;
+
+ // Account is in an active state.
+ ACTIVE = 1;
+
+ // Account has been created but is being provisioned in support systems.
+ PENDING = 2;
+
+ // Account deletion has been requested by the user.
+ PENDING_DELETION = 3;
+ }
+
+ // Pricing model applicable to this support account.
+ enum PricingModel {
+ // This account is subscribed to an unknown pricing model.
+ PRICING_MODEL_UNKNOWN = 0;
+
+ // Package based pricing (Platinum, Gold, Silver, Bronze).
+ PACKAGES = 1;
+
+ // Support charges are calculated based on user seats a.k.a,
+ // "Pick Your Team" model.
+ USER_ROLES = 2;
+ }
+
+ // The resource name for a support account in format
+ // `supportAccounts/{account_id}`.
+ // Output only.
+ string name = 1;
+
+ // Identifier for this entity that gets persisted in storage system. The
+ // resource name is populated using this field in format
+ // `supportAccounts/{account_id}`.
+ string account_id = 2;
+
+ // The Cloud resource with which this support account is associated.
+ string cloud_resource = 3;
+
+ // A user friendly display name assigned to this support account.
+ string display_name = 4;
+
+ // Indicates the current state of an account.
+ State state = 5;
+
+ // Time when this account was created.
+ // Output only.
+ google.protobuf.Timestamp create_time = 6;
+
+ // The resource name of a billing account associated with this support
+ // account. For example, `billingAccounts/ABCDEF-012345-567890`.
+ string billing_account_name = 7;
+
+ string unify_account_id = 8;
+
+ // The PricingModel applicable to this support account.
+ PricingModel pricing_model = 9;
+}
+
+// A support case created by the user.
+message Case {
+ // The case priority with P0 being the 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;
+ }
+
+ // The state of a case.
+ enum State {
+ // Case is in an unknown state.
+ STATE_UNSPECIFIED = 0;
+
+ // Case has been created but no one is assigned to work on it yet.
+ NEW = 1;
+
+ // Case has been assigned to a support agent.
+ ASSIGNED = 2;
+
+ // A support agent is currently investigating the case.
+ IN_PROGRESS_GOOGLE_SUPPORT = 3;
+
+ // Case has been forwarded to product team for further investigation.
+ IN_PROGRESS_GOOGLE_ENG = 4;
+
+ // Case is under investigation and relates to a known issue.
+ IN_PROGRESS_KNOWN_ISSUE = 5;
+
+ // Case is waiting for a response from the customer.
+ WAITING_FOR_CUSTOMER_RESPONSE = 6;
+
+ // A solution has been offered for the case but it isn't closed yet.
+ SOLUTION_OFFERED = 7;
+
+ // Cases has been fully resolved and is in a closed state.
+ CLOSED = 8;
+ }
+
+ // The resource name for the Case in format
+ // `supportAccounts/{account_id}/cases/{case_id}`
+ string name = 1;
+
+ // The short summary of the issue reported in this case.
+ string display_name = 2;
+
+ // The board description of issue provided with initial summary.
+ string description = 3;
+
+ // The product component for which this Case is reported.
+ string component = 4;
+
+ // The product subcomponent for which this Case is reported.
+ string subcomponent = 5;
+
+ // Timezone the client sending this request is in.
+ // It should be in a format IANA recognizes: https://www.iana.org/time-zone
+ // There is no additional validation done by the API.
+ string client_timezone = 6;
+
+ // The email addresses that can be copied to receive updates on this case.
+ // Users can specify a maximum of 10 email addresses.
+ repeated string cc_addresses = 7;
+
+ // The Google Cloud Platform project ID for which this case is created.
+ string project_id = 8;
+
+ // List of customer issues associated with this case.
+ repeated CustomerIssue issues = 10;
+
+ // The current priority of this case.
+ Priority priority = 11;
+
+ // The current state of this case.
+ State state = 12;
+
+ // Time when this case was created.
+ // Output only.
+ google.protobuf.Timestamp create_time = 13;
+
+ // Time when this case was last updated.
+ // Output only.
+ google.protobuf.Timestamp update_time = 14;
+
+ // Email address of user who created this case.
+ // Output only. It is inferred from credentials supplied during case creation.
+ string creator_email = 15;
+
+ // The issue category applicable to this case.
+ string category = 16;
+}
+
+// Reference to a Google internal ticket used for investigating a support case.
+// Not every support case will have an internal ticket associated with it.
+// A support case can have multiple tickets linked to it.
+message CustomerIssue {
+ // The status of a customer issue.
+ enum IssueState {
+ // Issue in an unknown state.
+ ISSUE_STATE_UNSPECIFIED = 0;
+
+ // Issue is currently open but the work on it has not been started.
+ OPEN = 1;
+
+ // Issue is currently being worked on.
+ IN_PROGRESS = 2;
+
+ // Issue is fixed.
+ FIXED = 3;
+
+ // Issue has been marked as invalid.
+ WONT_FIX = 4;
+
+ // Issue verified and in production.
+ VERIFIED = 5;
+ }
+
+ // Unique identifier for the internal issue.
+ // Output only.
+ string issue_id = 1;
+
+ // Represents current status of the internal ticket.
+ // Output only.
+ IssueState state = 2;
+
+ // Time when the internal issue was created.
+ // Output only.
+ google.protobuf.Timestamp create_time = 3;
+
+ // Time when the internal issue was marked as resolved.
+ // Output only.
+ google.protobuf.Timestamp resolve_time = 4;
+
+ // Time when the internal issue was last updated.
+ // Output only.
+ google.protobuf.Timestamp update_time = 5;
+}
+
+// A message that contains mapping of a user and their role under a support
+// account.
+message SupportRole {
+ // A role which determines the support resources and features a user might
+ // get access to.
+ enum Role {
+ // An unknown role.
+ ROLE_UNSPECIFIED = 0;
+
+ // The basic support role.
+ BASIC = 1;
+
+ // The developer role.
+ DEVELOPER = 2;
+
+ // The operation role.
+ OPERATION = 3;
+
+ // The site reliability role.
+ SITE_RELIABILITY = 4;
+ }
+
+ // Email address of user being added through this Role.
+ string email = 1;
+
+ // The type of role assigned to user.
+ Role role = 2;
+}
+
+// The comment text associated with a `Case`.
+message Comment {
+ // Text containing a maximum of 3000 characters.
+ string text = 1;
+
+ // Time when this update was created.
+ // Output only.
+ google.protobuf.Timestamp create_time = 2;
+
+ // The email address/name of user who created this comment.
+ // Output only.
+ string author = 3;
+
+ // The resource name for this comment in format
+ // `supportAccounts/{account_id}/cases/{case_id}/{comment_id}`.
+ // Output only.
+ string name = 4;
+}
+
+// Represents the product component taxonomy that is to be used while creating
+// or updating a `Case`. A client should obtain the list of issue categories,
+// component/subcomponent from this object and specify it in `Case.category`,
+// `Case.component` and `Case.subcomponent` fields respectively.
+message IssueTaxonomy {
+ // The representation of a product component. It is composed of a canonical
+ // name for the product (e.g., Google App Engine), languages in which a
+ // support ticket can be created under this component, a template that
+ // provides hints on important details to be filled out before submitting a
+ // case. It also contains an embedded list of product subcomponents that have
+ // similar attributes as top-level components.
+ // (e.g., Google App Engine > Memcache).
+ message Component {
+ // User friendly name of this component.
+ string display_name = 1;
+
+ // List of languages in which a support case can be created under this
+ // component. Represented by language codes in ISO_639-1 standard.
+ repeated string languages = 2;
+
+ // Template to be used while filling the description of a support case.
+ string template = 3;
+
+ // List of subcomponents under this component.
+ repeated Component subcomponents = 4;
+ }
+
+ // Represents the category of issue (Technical or Non-Technical)
+ // reported through a support case.
+ message Category {
+ // User friendly name of this category.
+ string display_name = 1;
+
+ // Map of product components under this category.
+ map<string, Component> components = 2;
+ }
+
+ // Map of available categories.
+ map<string, Category> categories = 1;
+}