123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- // 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;
- }
|