You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
334 lines
9.8 KiB
334 lines
9.8 KiB
6 years ago
|
// 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;
|
||
|
}
|