/// 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. #[derive(Clone, PartialEq, ::prost::Message)] pub struct SupportAccount { /// The resource name for a support account in format /// `supportAccounts/{account_id}`. /// Output only. #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, /// Identifier for this entity that gets persisted in storage system. The /// resource name is populated using this field in format /// `supportAccounts/{account_id}`. #[prost(string, tag = "2")] pub account_id: ::prost::alloc::string::String, /// The Cloud resource with which this support account is associated. #[prost(string, tag = "3")] pub cloud_resource: ::prost::alloc::string::String, /// A user friendly display name assigned to this support account. #[prost(string, tag = "4")] pub display_name: ::prost::alloc::string::String, /// Indicates the current state of an account. #[prost(enumeration = "support_account::State", tag = "5")] pub state: i32, /// Time when this account was created. /// Output only. #[prost(message, optional, tag = "6")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// The resource name of a billing account associated with this support /// account. For example, `billingAccounts/ABCDEF-012345-567890`. #[prost(string, tag = "7")] pub billing_account_name: ::prost::alloc::string::String, #[prost(string, tag = "8")] pub unify_account_id: ::prost::alloc::string::String, /// The PricingModel applicable to this support account. #[prost(enumeration = "support_account::PricingModel", tag = "9")] pub pricing_model: i32, } /// Nested message and enum types in `SupportAccount`. pub mod support_account { /// The current state of this SupportAccount. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum State { /// Account is in an unknown 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. PendingDeletion = 3, } /// Pricing model applicable to this support account. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum PricingModel { /// This account is subscribed to an unknown 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. UserRoles = 2, } } /// A support case created by the user. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Case { /// The resource name for the Case in format /// `supportAccounts/{account_id}/cases/{case_id}` #[prost(string, tag = "1")] pub name: ::prost::alloc::string::String, /// The short summary of the issue reported in this case. #[prost(string, tag = "2")] pub display_name: ::prost::alloc::string::String, /// The board description of issue provided with initial summary. #[prost(string, tag = "3")] pub description: ::prost::alloc::string::String, /// The product component for which this Case is reported. #[prost(string, tag = "4")] pub component: ::prost::alloc::string::String, /// The product subcomponent for which this Case is reported. #[prost(string, tag = "5")] pub subcomponent: ::prost::alloc::string::String, /// Timezone the client sending this request is in. /// It should be in a format IANA recognizes: /// There is no additional validation done by the API. #[prost(string, tag = "6")] pub client_timezone: ::prost::alloc::string::String, /// The email addresses that can be copied to receive updates on this case. /// Users can specify a maximum of 10 email addresses. #[prost(string, repeated, tag = "7")] pub cc_addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// The Google Cloud Platform project ID for which this case is created. #[prost(string, tag = "8")] pub project_id: ::prost::alloc::string::String, /// List of customer issues associated with this case. #[prost(message, repeated, tag = "10")] pub issues: ::prost::alloc::vec::Vec, /// The current priority of this case. #[prost(enumeration = "case::Priority", tag = "11")] pub priority: i32, /// The current state of this case. #[prost(enumeration = "case::State", tag = "12")] pub state: i32, /// Time when this case was created. /// Output only. #[prost(message, optional, tag = "13")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Time when this case was last updated. /// Output only. #[prost(message, optional, tag = "14")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, /// Email address of user who created this case. /// Output only. It is inferred from credentials supplied during case creation. #[prost(string, tag = "15")] pub creator_email: ::prost::alloc::string::String, /// The issue category applicable to this case. #[prost(string, tag = "16")] pub category: ::prost::alloc::string::String, } /// Nested message and enum types in `Case`. pub mod case { /// The case priority with P0 being the most urgent and P4 the least. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum Priority { /// Priority is undefined or has not been set yet. 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. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum State { /// Case is in an unknown 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. InProgressGoogleSupport = 3, /// Case has been forwarded to product team for further investigation. InProgressGoogleEng = 4, /// Case is under investigation and relates to a known issue. InProgressKnownIssue = 5, /// Case is waiting for a response from the customer. WaitingForCustomerResponse = 6, /// A solution has been offered for the case but it isn't closed yet. SolutionOffered = 7, /// Cases has been fully resolved and is in a closed state. Closed = 8, } } /// 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. #[derive(Clone, PartialEq, ::prost::Message)] pub struct CustomerIssue { /// Unique identifier for the internal issue. /// Output only. #[prost(string, tag = "1")] pub issue_id: ::prost::alloc::string::String, /// Represents current status of the internal ticket. /// Output only. #[prost(enumeration = "customer_issue::IssueState", tag = "2")] pub state: i32, /// Time when the internal issue was created. /// Output only. #[prost(message, optional, tag = "3")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// Time when the internal issue was marked as resolved. /// Output only. #[prost(message, optional, tag = "4")] pub resolve_time: ::core::option::Option<::prost_types::Timestamp>, /// Time when the internal issue was last updated. /// Output only. #[prost(message, optional, tag = "5")] pub update_time: ::core::option::Option<::prost_types::Timestamp>, } /// Nested message and enum types in `CustomerIssue`. pub mod customer_issue { /// The status of a customer issue. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum IssueState { /// Issue in an unknown state. Unspecified = 0, /// Issue is currently open but the work on it has not been started. Open = 1, /// Issue is currently being worked on. InProgress = 2, /// Issue is fixed. Fixed = 3, /// Issue has been marked as invalid. WontFix = 4, /// Issue verified and in production. Verified = 5, } } /// A message that contains mapping of a user and their role under a support /// account. #[derive(Clone, PartialEq, ::prost::Message)] pub struct SupportRole { /// Email address of user being added through this Role. #[prost(string, tag = "1")] pub email: ::prost::alloc::string::String, /// The type of role assigned to user. #[prost(enumeration = "support_role::Role", tag = "2")] pub role: i32, } /// Nested message and enum types in `SupportRole`. pub mod support_role { /// A role which determines the support resources and features a user might /// get access to. #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)] #[repr(i32)] pub enum Role { /// An unknown role. Unspecified = 0, /// The basic support role. Basic = 1, /// The developer role. Developer = 2, /// The operation role. Operation = 3, /// The site reliability role. SiteReliability = 4, } } /// The comment text associated with a `Case`. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Comment { /// Text containing a maximum of 3000 characters. #[prost(string, tag = "1")] pub text: ::prost::alloc::string::String, /// Time when this update was created. /// Output only. #[prost(message, optional, tag = "2")] pub create_time: ::core::option::Option<::prost_types::Timestamp>, /// The email address/name of user who created this comment. /// Output only. #[prost(string, tag = "3")] pub author: ::prost::alloc::string::String, /// The resource name for this comment in format /// `supportAccounts/{account_id}/cases/{case_id}/{comment_id}`. /// Output only. #[prost(string, tag = "4")] pub name: ::prost::alloc::string::String, } /// 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. #[derive(Clone, PartialEq, ::prost::Message)] pub struct IssueTaxonomy { /// Map of available categories. #[prost(map = "string, message", tag = "1")] pub categories: ::std::collections::HashMap<::prost::alloc::string::String, issue_taxonomy::Category>, } /// Nested message and enum types in `IssueTaxonomy`. pub mod issue_taxonomy { /// 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). #[derive(Clone, PartialEq, ::prost::Message)] pub struct Component { /// User friendly name of this component. #[prost(string, tag = "1")] pub display_name: ::prost::alloc::string::String, /// List of languages in which a support case can be created under this /// component. Represented by language codes in ISO_639-1 standard. #[prost(string, repeated, tag = "2")] pub languages: ::prost::alloc::vec::Vec<::prost::alloc::string::String>, /// Template to be used while filling the description of a support case. #[prost(string, tag = "3")] pub template: ::prost::alloc::string::String, /// List of subcomponents under this component. #[prost(message, repeated, tag = "4")] pub subcomponents: ::prost::alloc::vec::Vec, } /// Represents the category of issue (Technical or Non-Technical) /// reported through a support case. #[derive(Clone, PartialEq, ::prost::Message)] pub struct Category { /// User friendly name of this category. #[prost(string, tag = "1")] pub display_name: ::prost::alloc::string::String, /// Map of product components under this category. #[prost(map = "string, message", tag = "2")] pub components: ::std::collections::HashMap<::prost::alloc::string::String, Component>, } }