"""Generated message classes for cloudsupport version v2beta.

Manages Google Cloud technical support cases for Customer Care support
offerings.
"""
# NOTE: This file is autogenerated and should not be edited by hand.

from apitools.base.protorpclite import messages as _messages
from apitools.base.py import encoding


package = 'cloudsupport'


class Actor(_messages.Message):
  r"""An Actor represents an entity that performed an action. For example, an
  actor could be a user who posted a comment on a support case, a user who
  uploaded an attachment, or a service account that created a support case.

  Fields:
    displayName: The name to display for the actor. If not provided, it is
      inferred from credentials supplied during case creation. When an email
      is provided, a display name must also be provided. This will be
      obfuscated if the user is a Google Support agent.
    email: The email address of the actor. If not provided, it is inferred
      from the credentials supplied during case creation. When a name is
      provided, an email must also be provided. If the user is a Google
      Support agent, this is obfuscated. This field is deprecated. Use
      `username` instead.
    googleSupport: Output only. Whether the actor is a Google support actor.
    username: Output only. The username of the actor. It may look like an
      email or other format provided by the identity provider. If not
      provided, it is inferred from the credentials supplied. When a name is
      provided, a username must also be provided. If the user is a Google
      Support agent, this will not be set.
  """

  displayName = _messages.StringField(1)
  email = _messages.StringField(2)
  googleSupport = _messages.BooleanField(3)
  username = _messages.StringField(4)


class Attachment(_messages.Message):
  r"""An Attachment contains metadata about a file that was uploaded to a case
  - it is NOT a file itself. That being said, the name of an Attachment object
  can be used to download its accompanying file through the `media.download`
  endpoint. While attachments can be uploaded in the console at the same time
  as a comment, they're associated on a "case" level, not a "comment" level.

  Fields:
    createTime: Output only. The time at which the attachment was created.
    creator: Output only. The user who uploaded the attachment. Note, the name
      and email will be obfuscated if the attachment was uploaded by Google
      support.
    filename: The filename of the attachment (e.g. `"graph.jpg"`).
    mimeType: Output only. The MIME type of the attachment (e.g. text/plain).
    name: Output only. Identifier. The resource name of the attachment.
    sizeBytes: Output only. The size of the attachment in bytes.
  """

  createTime = _messages.StringField(1)
  creator = _messages.MessageField('Actor', 2)
  filename = _messages.StringField(3)
  mimeType = _messages.StringField(4)
  name = _messages.StringField(5)
  sizeBytes = _messages.IntegerField(6)


class Blobstore2Info(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    blobGeneration: # gdata.* are outside protos with mising documentation
    blobId: # gdata.* are outside protos with mising documentation
    downloadExternalReadToken: # gdata.* are outside protos with mising
      documentation
    downloadReadHandle: # gdata.* are outside protos with mising documentation
    readToken: # gdata.* are outside protos with mising documentation
    uploadFragmentListCreationInfo: # gdata.* are outside protos with mising
      documentation
    uploadMetadataContainer: # gdata.* are outside protos with mising
      documentation
  """

  blobGeneration = _messages.IntegerField(1)
  blobId = _messages.StringField(2)
  downloadExternalReadToken = _messages.BytesField(3)
  downloadReadHandle = _messages.BytesField(4)
  readToken = _messages.StringField(5)
  uploadFragmentListCreationInfo = _messages.BytesField(6)
  uploadMetadataContainer = _messages.BytesField(7)


class Case(_messages.Message):
  r"""A Case is an object that contains the details of a support case. It
  contains fields for the time it was created, its priority, its
  classification, and more. Cases can also have comments and attachments that
  get added over time. A case is parented by a Google Cloud organization or
  project. Organizations are identified by a number, so the name of a case
  parented by an organization would look like this: ```
  organizations/123/cases/456 ``` Projects have two unique identifiers, an ID
  and a number, and they look like this: ``` projects/abc/cases/456 ``` ```
  projects/123/cases/456 ``` You can use either of them when calling the API.
  To learn more about project identifiers, see
  [AIP-2510](https://google.aip.dev/cloud/2510).

  Enums:
    PriorityValueValuesEnum: The priority of this case.
    SeverityValueValuesEnum: REMOVED. The severity of this case. Use priority
      instead.
    StateValueValuesEnum: Output only. The current status of the support case.

  Fields:
    classification: The issue classification applicable to this case.
    contactEmail: A user-supplied email address to send case update
      notifications for. This should only be used in BYOID flows, where we
      cannot infer the user's email address directly from their EUCs.
    createTime: Output only. The time this case was created.
    creator: The user who created the case. Note: The name and email will be
      obfuscated if the case was created by Google Support.
    description: A broad description of the issue.
    displayName: The short summary of the issue reported in this case.
    escalated: Whether the case is currently escalated.
    languageCode: The language the user has requested to receive support in.
      This should be a BCP 47 language code (e.g., `"en"`, `"zh-CN"`, `"zh-
      TW"`, `"ja"`, `"ko"`). If no language or an unsupported language is
      specified, this field defaults to English (en). Language selection
      during case creation may affect your available support options. For a
      list of supported languages and their support working hours, see:
      https://cloud.google.com/support/docs/language-working-hours
    name: Identifier. The resource name for the case.
    priority: The priority of this case.
    severity: REMOVED. The severity of this case. Use priority instead.
    state: Output only. The current status of the support case.
    subscriberEmailAddresses: The email addresses to receive updates on this
      case.
    testCase: Whether this case was created for internal API testing and
      should not be acted on by the support team.
    timeZone: The timezone of the user who created the support case. It should
      be in a format IANA recognizes: https://www.iana.org/time-zones. There
      is no additional validation done by the API.
    updateTime: Output only. The time this case was last updated.
  """

  class PriorityValueValuesEnum(_messages.Enum):
    r"""The priority of this case.

    Values:
      PRIORITY_UNSPECIFIED: Priority is undefined or has not been set yet.
      P0: Extreme impact on a production service. Service is hard down.
      P1: Critical impact on a production service. Service is currently
        unusable.
      P2: Severe impact on a production service. Service is usable but greatly
        impaired.
      P3: Medium impact on a production service. Service is available, but
        moderately impaired.
      P4: General questions or minor issues. Production service is fully
        available.
    """
    PRIORITY_UNSPECIFIED = 0
    P0 = 1
    P1 = 2
    P2 = 3
    P3 = 4
    P4 = 5

  class SeverityValueValuesEnum(_messages.Enum):
    r"""REMOVED. The severity of this case. Use priority instead.

    Values:
      SEVERITY_UNSPECIFIED: Severity is undefined or has not been set yet.
      S0: Extreme impact on a production service. Service is hard down.
      S1: Critical impact on a production service. Service is currently
        unusable.
      S2: Severe impact on a production service. Service is usable but greatly
        impaired.
      S3: Medium impact on a production service. Service is available, but
        moderately impaired.
      S4: General questions or minor issues. Production service is fully
        available.
    """
    SEVERITY_UNSPECIFIED = 0
    S0 = 1
    S1 = 2
    S2 = 3
    S3 = 4
    S4 = 5

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The current status of the support case.

    Values:
      STATE_UNSPECIFIED: Case is in an unknown state.
      NEW: The case has been created but no one is assigned to work on it yet.
      IN_PROGRESS_GOOGLE_SUPPORT: The case is currently being handled by
        Google support.
      ACTION_REQUIRED: Google is waiting for a response.
      SOLUTION_PROVIDED: A solution has been offered for the case, but it
        isn't yet closed.
      CLOSED: The case has been resolved.
    """
    STATE_UNSPECIFIED = 0
    NEW = 1
    IN_PROGRESS_GOOGLE_SUPPORT = 2
    ACTION_REQUIRED = 3
    SOLUTION_PROVIDED = 4
    CLOSED = 5

  classification = _messages.MessageField('CaseClassification', 1)
  contactEmail = _messages.StringField(2)
  createTime = _messages.StringField(3)
  creator = _messages.MessageField('Actor', 4)
  description = _messages.StringField(5)
  displayName = _messages.StringField(6)
  escalated = _messages.BooleanField(7)
  languageCode = _messages.StringField(8)
  name = _messages.StringField(9)
  priority = _messages.EnumField('PriorityValueValuesEnum', 10)
  severity = _messages.EnumField('SeverityValueValuesEnum', 11)
  state = _messages.EnumField('StateValueValuesEnum', 12)
  subscriberEmailAddresses = _messages.StringField(13, repeated=True)
  testCase = _messages.BooleanField(14)
  timeZone = _messages.StringField(15)
  updateTime = _messages.StringField(16)


class CaseClassification(_messages.Message):
  r"""A Case Classification represents the topic that a case is about. It's
  very important to use accurate classifications, because they're used to
  route your cases to specialists who can help you. A classification always
  has an ID that is its unique identifier. A valid ID is required when
  creating a case.

  Fields:
    displayName: A display name for the classification. The display name is
      not static and can change. To uniquely and consistently identify
      classifications, use the `CaseClassification.id` field.
    id: The unique ID for a classification. Must be specified for case
      creation. To retrieve valid classification IDs for case creation, use
      `caseClassifications.search`. Classification IDs returned by
      `caseClassifications.search` are guaranteed to be valid for at least 6
      months. If a given classification is deactiveated, it will immediately
      stop being returned. After 6 months, `case.create` requests using the
      classification ID will fail.
    product: The full product the classification corresponds to.
  """

  displayName = _messages.StringField(1)
  id = _messages.StringField(2)
  product = _messages.MessageField('Product', 3)


class CloseCaseRequest(_messages.Message):
  r"""The request message for the CloseCase endpoint."""


class CloudsupportCaseClassificationsSearchRequest(_messages.Message):
  r"""A CloudsupportCaseClassificationsSearchRequest object.

  Enums:
    ProductProductLineValueValuesEnum: The product line of the Product.

  Fields:
    pageSize: The maximum number of classifications fetched with each request.
    pageToken: A token identifying the page of results to return. If
      unspecified, the first page is retrieved.
    product_productLine: The product line of the Product.
    query: An expression used to filter case classifications. If it's an empty
      string, then no filtering happens. Otherwise, case classifications will
      be returned that match the filter.
  """

  class ProductProductLineValueValuesEnum(_messages.Enum):
    r"""The product line of the Product.

    Values:
      PRODUCT_LINE_UNSPECIFIED: Unknown product type.
      GOOGLE_CLOUD: Google Cloud
      GOOGLE_MAPS: Google Maps
    """
    PRODUCT_LINE_UNSPECIFIED = 0
    GOOGLE_CLOUD = 1
    GOOGLE_MAPS = 2

  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(2)
  product_productLine = _messages.EnumField('ProductProductLineValueValuesEnum', 3)
  query = _messages.StringField(4)


class CloudsupportCasesAttachmentsGetRequest(_messages.Message):
  r"""A CloudsupportCasesAttachmentsGetRequest object.

  Fields:
    name: Required. The name of the attachment to get.
  """

  name = _messages.StringField(1, required=True)


class CloudsupportCasesAttachmentsListRequest(_messages.Message):
  r"""A CloudsupportCasesAttachmentsListRequest object.

  Fields:
    pageSize: The maximum number of attachments fetched with each request. If
      not provided, the default is 10. The maximum page size that will be
      returned is 100. The size of each page can be smaller than the requested
      page size and can include zero. For example, you could request 100
      attachments on one page, receive 0, and then on the next page, receive
      90.
    pageToken: A token identifying the page of results to return. If
      unspecified, the first page is retrieved.
    parent: Required. The name of the case for which attachments should be
      listed.
  """

  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class CloudsupportCasesCloseRequest(_messages.Message):
  r"""A CloudsupportCasesCloseRequest object.

  Fields:
    closeCaseRequest: A CloseCaseRequest resource to be passed as the request
      body.
    name: Required. The name of the case to close.
  """

  closeCaseRequest = _messages.MessageField('CloseCaseRequest', 1)
  name = _messages.StringField(2, required=True)


class CloudsupportCasesCommentsCreateRequest(_messages.Message):
  r"""A CloudsupportCasesCommentsCreateRequest object.

  Fields:
    comment: A Comment resource to be passed as the request body.
    parent: Required. The name of the case to which the comment should be
      added.
  """

  comment = _messages.MessageField('Comment', 1)
  parent = _messages.StringField(2, required=True)


class CloudsupportCasesCommentsGetRequest(_messages.Message):
  r"""A CloudsupportCasesCommentsGetRequest object.

  Fields:
    name: Required. The name of the comment to retrieve.
  """

  name = _messages.StringField(1, required=True)


class CloudsupportCasesCommentsListRequest(_messages.Message):
  r"""A CloudsupportCasesCommentsListRequest object.

  Fields:
    pageSize: The maximum number of comments to fetch. Defaults to 10.
    pageToken: A token identifying the page of results to return. If
      unspecified, the first page is returned.
    parent: Required. The name of the case for which to list comments.
  """

  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


class CloudsupportCasesCreateRequest(_messages.Message):
  r"""A CloudsupportCasesCreateRequest object.

  Fields:
    case: A Case resource to be passed as the request body.
    parent: Required. The name of the parent under which the case should be
      created.
  """

  case = _messages.MessageField('Case', 1)
  parent = _messages.StringField(2, required=True)


class CloudsupportCasesEscalateRequest(_messages.Message):
  r"""A CloudsupportCasesEscalateRequest object.

  Fields:
    escalateCaseRequest: A EscalateCaseRequest resource to be passed as the
      request body.
    name: Required. The name of the case to be escalated.
  """

  escalateCaseRequest = _messages.MessageField('EscalateCaseRequest', 1)
  name = _messages.StringField(2, required=True)


class CloudsupportCasesGetRequest(_messages.Message):
  r"""A CloudsupportCasesGetRequest object.

  Fields:
    name: Required. The full name of a case to be retrieved.
  """

  name = _messages.StringField(1, required=True)


class CloudsupportCasesListRequest(_messages.Message):
  r"""A CloudsupportCasesListRequest object.

  Enums:
    ProductLineValueValuesEnum: The product line to request cases for. If
      unspecified, only Google Cloud cases will be returned.

  Fields:
    filter: An expression used to filter cases. If it's an empty string, then
      no filtering happens. Otherwise, the endpoint returns the cases that
      match the filter. Expressions use the following fields separated by
      `AND` and specified with `=`: - `state`: Can be `OPEN` or `CLOSED`. -
      `priority`: Can be `P0`, `P1`, `P2`, `P3`, or `P4`. You can specify
      multiple values for priority using the `OR` operator. For example,
      `priority=P1 OR priority=P2`. - `creator.email`: The email address of
      the case creator. EXAMPLES: - `state=CLOSED` - `state=OPEN AND
      creator.email="tester@example.com"` - `state=OPEN AND (priority=P0 OR
      priority=P1)`
    pageSize: The maximum number of cases fetched with each request. Defaults
      to 10.
    pageToken: A token identifying the page of results to return. If
      unspecified, the first page is retrieved.
    parent: Required. The name of a parent to list cases under.
    productLine: The product line to request cases for. If unspecified, only
      Google Cloud cases will be returned.
  """

  class ProductLineValueValuesEnum(_messages.Enum):
    r"""The product line to request cases for. If unspecified, only Google
    Cloud cases will be returned.

    Values:
      PRODUCT_LINE_UNSPECIFIED: Unknown product type.
      GOOGLE_CLOUD: Google Cloud
      GOOGLE_MAPS: Google Maps
    """
    PRODUCT_LINE_UNSPECIFIED = 0
    GOOGLE_CLOUD = 1
    GOOGLE_MAPS = 2

  filter = _messages.StringField(1)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)
  productLine = _messages.EnumField('ProductLineValueValuesEnum', 5)


class CloudsupportCasesPatchRequest(_messages.Message):
  r"""A CloudsupportCasesPatchRequest object.

  Fields:
    case: A Case resource to be passed as the request body.
    name: Identifier. The resource name for the case.
    updateMask: A list of attributes of the case that should be updated.
      Supported values are `priority`, `display_name`, and
      `subscriber_email_addresses`. If no fields are specified, all supported
      fields are updated. Be careful - if you do not provide a field mask,
      then you might accidentally clear some fields. For example, if you leave
      the field mask empty and do not provide a value for
      `subscriber_email_addresses`, then `subscriber_email_addresses` is
      updated to empty.
  """

  case = _messages.MessageField('Case', 1)
  name = _messages.StringField(2, required=True)
  updateMask = _messages.StringField(3)


class CloudsupportCasesSearchRequest(_messages.Message):
  r"""A CloudsupportCasesSearchRequest object.

  Fields:
    pageSize: The maximum number of cases fetched with each request. The
      default page size is 10.
    pageToken: A token identifying the page of results to return. If
      unspecified, the first page is retrieved.
    parent: The name of the parent resource to search for cases under.
    query: An expression used to filter cases. Expressions use the following
      fields separated by `AND` and specified with `=`: - `state`: Can be
      `OPEN` or `CLOSED`. - `priority`: Can be `P0`, `P1`, `P2`, `P3`, or
      `P4`. You can specify multiple values for priority using the `OR`
      operator. For example, `priority=P1 OR priority=P2`. - `creator.email`:
      The email address of the case creator. To search across `displayName`,
      `description`, and comments, use a global restriction with no keyword or
      operator. For example, `"my search"`. To search only cases updated after
      a certain date, use `update_time` restricted with that particular date,
      time, and timezone in ISO datetime format. For example,
      `update_time>"2020-01-01T00:00:00-05:00"`. `update_time` only supports
      the greater than operator (`>`). If you are using the `v2` version of
      the API, you must specify the case parent in the `parent` field. If you
      provide an empty `query`, all cases under the parent resource will be
      returned. If you are using the `v2beta` version of the API, you must
      specify the case parent in the `query` field using one of the two fields
      below, which are only available for `v2beta`. The `parent` field will be
      ignored. - `organization`: An organization name in the form
      `organizations/`. - `project`: A project name in the form `projects/`.
      Examples: For `v2`: - `state=CLOSED` - `state=OPEN AND
      creator.email="tester@example.com"` - `state=OPEN AND (priority=P0 OR
      priority=P1)` - `update_time>"2020-01-01T00:00:00-05:00"` For `v2beta`:
      - `organization="organizations/123456789"` - `project="projects/my-
      project-id"` - `project="projects/123456789"` -
      `organization="organizations/123456789" AND state=CLOSED` -
      `project="projects/my-project-id" AND
      creator.email="tester@example.com"` - `project="projects/my-project-id"
      AND (priority=P0 OR priority=P1)`
  """

  pageSize = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(2)
  parent = _messages.StringField(3)
  query = _messages.StringField(4)


class CloudsupportCasesShowFeedRequest(_messages.Message):
  r"""A CloudsupportCasesShowFeedRequest object.

  Fields:
    orderBy: Optional. Field to order feed items by, followed by `asc` or
      `desc` postfix. The only valid field is `creation_time`. This list is
      case-insensitive, default sorting order is ascending, and the redundant
      space characters are insignificant. Example: `creation_time desc`
    pageSize: Optional. The maximum number of feed items fetched with each
      request.
    pageToken: Optional. A token identifying the page of results to return. If
      unspecified, it retrieves the first page.
    parent: Required. The resource name of the case for which feed items
      should be listed.
  """

  orderBy = _messages.StringField(1)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)


class CloudsupportMediaDownloadRequest(_messages.Message):
  r"""A CloudsupportMediaDownloadRequest object.

  Fields:
    name: The name of the file attachment to download.
  """

  name = _messages.StringField(1, required=True)


class CloudsupportMediaUploadRequest(_messages.Message):
  r"""A CloudsupportMediaUploadRequest object.

  Fields:
    createAttachmentRequest: A CreateAttachmentRequest resource to be passed
      as the request body.
    parent: Required. The name of the case or Cloud resource to which the
      attachment should be attached.
  """

  createAttachmentRequest = _messages.MessageField('CreateAttachmentRequest', 1)
  parent = _messages.StringField(2, required=True)


class CloudsupportOrganizationsSupportEventSubscriptionsCreateRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsCreateRequest
  object.

  Fields:
    parent: Required. The parent resource name where the support event
      subscription will be created. Format: organizations/{organization_id}
    supportEventSubscription: A SupportEventSubscription resource to be passed
      as the request body.
  """

  parent = _messages.StringField(1, required=True)
  supportEventSubscription = _messages.MessageField('SupportEventSubscription', 2)


class CloudsupportOrganizationsSupportEventSubscriptionsDeleteRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsDeleteRequest
  object.

  Fields:
    name: Required. The name of the support event subscription to delete.
      Format: organizations/{organization_id}/supportEventSubscriptions/{subsc
      ription_id}
  """

  name = _messages.StringField(1, required=True)


class CloudsupportOrganizationsSupportEventSubscriptionsExpungeRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsExpungeRequest
  object.

  Fields:
    expungeSupportEventSubscriptionRequest: A
      ExpungeSupportEventSubscriptionRequest resource to be passed as the
      request body.
    name: Required. The name of the support event subscription to expunge.
      Format: organizations/{organization_id}/supportEventSubscriptions/{subsc
      ription_id}
  """

  expungeSupportEventSubscriptionRequest = _messages.MessageField('ExpungeSupportEventSubscriptionRequest', 1)
  name = _messages.StringField(2, required=True)


class CloudsupportOrganizationsSupportEventSubscriptionsGetRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsGetRequest object.

  Fields:
    name: Required. The name of the support event subscription to retrieve.
      Format: organizations/{organization_id}/supportEventSubscriptions/{subsc
      ription_id}
  """

  name = _messages.StringField(1, required=True)


class CloudsupportOrganizationsSupportEventSubscriptionsListRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsListRequest object.

  Fields:
    filter: Optional. Filter expression based on AIP-160. Supported fields: -
      pub_sub_topic - state Examples: - `pub_sub_topic="projects/example-
      project/topics/example-topic"` - `state=WORKING` -
      `pub_sub_topic="projects/example-project/topics/example-topic" AND
      state=WORKING`
    pageSize: Optional. The maximum number of support event subscriptions to
      return.
    pageToken: Optional. A token identifying the page of results to return. If
      unspecified, the first page is retrieved. When paginating, all other
      parameters provided to `ListSupportEventSubscriptions` must match the
      call that provided the page token.
    parent: Required. The fully qualified name of the Cloud resource to list
      support event subscriptions under. Format:
      organizations/{organization_id}
    showDeleted: Optional. Whether to show deleted subscriptions. By default,
      deleted subscriptions are not returned.
  """

  filter = _messages.StringField(1)
  pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(3)
  parent = _messages.StringField(4, required=True)
  showDeleted = _messages.BooleanField(5)


class CloudsupportOrganizationsSupportEventSubscriptionsPatchRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsPatchRequest object.

  Fields:
    name: Identifier. The resource name of the support event subscription.
    supportEventSubscription: A SupportEventSubscription resource to be passed
      as the request body.
    updateMask: Optional. The list of fields to update. The only supported
      value is pub_sub_topic.
  """

  name = _messages.StringField(1, required=True)
  supportEventSubscription = _messages.MessageField('SupportEventSubscription', 2)
  updateMask = _messages.StringField(3)


class CloudsupportOrganizationsSupportEventSubscriptionsUndeleteRequest(_messages.Message):
  r"""A CloudsupportOrganizationsSupportEventSubscriptionsUndeleteRequest
  object.

  Fields:
    name: Required. The name of the support event subscription to undelete.
      Format: organizations/{organization_id}/supportEventSubscriptions/{subsc
      ription_id}
    undeleteSupportEventSubscriptionRequest: A
      UndeleteSupportEventSubscriptionRequest resource to be passed as the
      request body.
  """

  name = _messages.StringField(1, required=True)
  undeleteSupportEventSubscriptionRequest = _messages.MessageField('UndeleteSupportEventSubscriptionRequest', 2)


class Comment(_messages.Message):
  r"""A comment associated with a support case. Case comments are the primary
  way for Google Support to communicate with a user who has opened a case.
  When a user responds to Google Support, the user's responses also appear as
  comments.

  Fields:
    body: The full comment body. Maximum of 12800 characters.
    createTime: Output only. The time when the comment was created.
    creator: Output only. The user or Google Support agent who created the
      comment.
    name: Output only. Identifier. The resource name of the comment.
    plainTextBody: Output only. DEPRECATED. DO NOT USE. A duplicate of the
      `body` field. This field is only present for legacy reasons.
  """

  body = _messages.StringField(1)
  createTime = _messages.StringField(2)
  creator = _messages.MessageField('Actor', 3)
  name = _messages.StringField(4)
  plainTextBody = _messages.StringField(5)


class CompositeMedia(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Enums:
    ReferenceTypeValueValuesEnum: # gdata.* are outside protos with mising
      documentation

  Fields:
    blobRef: # gdata.* are outside protos with mising documentation
    blobstore2Info: # gdata.* are outside protos with mising documentation
    cosmoBinaryReference: # gdata.* are outside protos with mising
      documentation
    crc32cHash: # gdata.* are outside protos with mising documentation
    inline: # gdata.* are outside protos with mising documentation
    length: # gdata.* are outside protos with mising documentation
    md5Hash: # gdata.* are outside protos with mising documentation
    objectId: # gdata.* are outside protos with mising documentation
    path: # gdata.* are outside protos with mising documentation
    referenceType: # gdata.* are outside protos with mising documentation
    sha1Hash: # gdata.* are outside protos with mising documentation
  """

  class ReferenceTypeValueValuesEnum(_messages.Enum):
    r"""# gdata.* are outside protos with mising documentation

    Values:
      PATH: # gdata.* are outside protos with mising documentation
      BLOB_REF: # gdata.* are outside protos with mising documentation
      INLINE: # gdata.* are outside protos with mising documentation
      BIGSTORE_REF: # gdata.* are outside protos with mising documentation
      COSMO_BINARY_REFERENCE: # gdata.* are outside protos with mising
        documentation
    """
    PATH = 0
    BLOB_REF = 1
    INLINE = 2
    BIGSTORE_REF = 3
    COSMO_BINARY_REFERENCE = 4

  blobRef = _messages.BytesField(1)
  blobstore2Info = _messages.MessageField('Blobstore2Info', 2)
  cosmoBinaryReference = _messages.BytesField(3)
  crc32cHash = _messages.IntegerField(4, variant=_messages.Variant.UINT32)
  inline = _messages.BytesField(5)
  length = _messages.IntegerField(6)
  md5Hash = _messages.BytesField(7)
  objectId = _messages.MessageField('ObjectId', 8)
  path = _messages.StringField(9)
  referenceType = _messages.EnumField('ReferenceTypeValueValuesEnum', 10)
  sha1Hash = _messages.BytesField(11)


class ContentTypeInfo(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    bestGuess: # gdata.* are outside protos with mising documentation
    fromBytes: # gdata.* are outside protos with mising documentation
    fromFileName: # gdata.* are outside protos with mising documentation
    fromFusionId: # gdata.* are outside protos with mising documentation
    fromHeader: # gdata.* are outside protos with mising documentation
    fromUrlPath: # gdata.* are outside protos with mising documentation
    fusionIdDetectionMetadata: # gdata.* are outside protos with mising
      documentation
  """

  bestGuess = _messages.StringField(1)
  fromBytes = _messages.StringField(2)
  fromFileName = _messages.StringField(3)
  fromFusionId = _messages.StringField(4)
  fromHeader = _messages.StringField(5)
  fromUrlPath = _messages.StringField(6)
  fusionIdDetectionMetadata = _messages.BytesField(7)


class CreateAttachmentRequest(_messages.Message):
  r"""The request message for the CreateAttachment endpoint.

  Fields:
    attachment: Required. The attachment to be created.
  """

  attachment = _messages.MessageField('Attachment', 1)


class DiffChecksumsResponse(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    checksumsLocation: # gdata.* are outside protos with mising documentation
    chunkSizeBytes: # gdata.* are outside protos with mising documentation
    objectLocation: # gdata.* are outside protos with mising documentation
    objectSizeBytes: # gdata.* are outside protos with mising documentation
    objectVersion: # gdata.* are outside protos with mising documentation
  """

  checksumsLocation = _messages.MessageField('CompositeMedia', 1)
  chunkSizeBytes = _messages.IntegerField(2)
  objectLocation = _messages.MessageField('CompositeMedia', 3)
  objectSizeBytes = _messages.IntegerField(4)
  objectVersion = _messages.StringField(5)


class DiffDownloadResponse(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    objectLocation: # gdata.* are outside protos with mising documentation
  """

  objectLocation = _messages.MessageField('CompositeMedia', 1)


class DiffUploadRequest(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    checksumsInfo: # gdata.* are outside protos with mising documentation
    objectInfo: # gdata.* are outside protos with mising documentation
    objectVersion: # gdata.* are outside protos with mising documentation
  """

  checksumsInfo = _messages.MessageField('CompositeMedia', 1)
  objectInfo = _messages.MessageField('CompositeMedia', 2)
  objectVersion = _messages.StringField(3)


class DiffUploadResponse(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    objectVersion: # gdata.* are outside protos with mising documentation
    originalObject: # gdata.* are outside protos with mising documentation
  """

  objectVersion = _messages.StringField(1)
  originalObject = _messages.MessageField('CompositeMedia', 2)


class DiffVersionResponse(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    objectSizeBytes: # gdata.* are outside protos with mising documentation
    objectVersion: # gdata.* are outside protos with mising documentation
  """

  objectSizeBytes = _messages.IntegerField(1)
  objectVersion = _messages.StringField(2)


class DownloadParameters(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    allowGzipCompression: # gdata.* are outside protos with mising
      documentation
    ignoreRange: # gdata.* are outside protos with mising documentation
  """

  allowGzipCompression = _messages.BooleanField(1)
  ignoreRange = _messages.BooleanField(2)


class EmailMessage(_messages.Message):
  r"""An email associated with a support case.

  Fields:
    actor: Output only. The user or Google Support agent that created this
      email message. This is inferred from the headers on the email message.
    bodyContent: Output only. The full email message body. A best-effort
      attempt is made to remove extraneous reply threads.
    ccEmailAddresses: Output only. Email addresses CCed on the email.
    createTime: Output only. Time when this email message object was created.
    name: Identifier. Resource name for the email message.
    recipientEmailAddresses: Output only. Email addresses the email was sent
      to.
    subject: Output only. Subject of the email.
  """

  actor = _messages.MessageField('Actor', 1)
  bodyContent = _messages.MessageField('TextContent', 2)
  ccEmailAddresses = _messages.StringField(3, repeated=True)
  createTime = _messages.StringField(4)
  name = _messages.StringField(5)
  recipientEmailAddresses = _messages.StringField(6, repeated=True)
  subject = _messages.StringField(7)


class Empty(_messages.Message):
  r"""A generic empty message that you can re-use to avoid defining duplicated
  empty messages in your APIs. A typical example is to use it as the request
  or the response type of an API method. For instance: service Foo { rpc
  Bar(google.protobuf.Empty) returns (google.protobuf.Empty); }
  """



class EscalateCaseRequest(_messages.Message):
  r"""The request message for the EscalateCase endpoint.

  Fields:
    escalation: The escalation information to be sent with the escalation
      request.
  """

  escalation = _messages.MessageField('Escalation', 1)


class Escalation(_messages.Message):
  r"""An escalation of a support case.

  Enums:
    ReasonValueValuesEnum: Required. The reason why the Case is being
      escalated.

  Fields:
    justification: Required. A free text description to accompany the `reason`
      field above. Provides additional context on why the case is being
      escalated.
    reason: Required. The reason why the Case is being escalated.
  """

  class ReasonValueValuesEnum(_messages.Enum):
    r"""Required. The reason why the Case is being escalated.

    Values:
      REASON_UNSPECIFIED: The escalation reason is in an unknown state or has
        not been specified.
      RESOLUTION_TIME: The case is taking too long to resolve.
      TECHNICAL_EXPERTISE: The support agent does not have the expertise
        required to successfully resolve the issue.
      BUSINESS_IMPACT: The issue is having a significant business impact.
    """
    REASON_UNSPECIFIED = 0
    RESOLUTION_TIME = 1
    TECHNICAL_EXPERTISE = 2
    BUSINESS_IMPACT = 3

  justification = _messages.StringField(1)
  reason = _messages.EnumField('ReasonValueValuesEnum', 2)


class ExpungeSupportEventSubscriptionRequest(_messages.Message):
  r"""Request message for ExpungeSupportEventSubscription."""


class FeedItem(_messages.Message):
  r"""A feed item associated with a support case.

  Fields:
    attachment: Output only. An attachment attached to the case.
    comment: Output only. A comment added to the case.
    deletedAttachment: Output only. A deleted attachment that used to be
      associated with the support case.
    emailMessage: Output only. An email message received in reply to the case.
    eventTime: Output only. Time corresponding to the event of this item.
  """

  attachment = _messages.MessageField('Attachment', 1)
  comment = _messages.MessageField('Comment', 2)
  deletedAttachment = _messages.MessageField('Attachment', 3)
  emailMessage = _messages.MessageField('EmailMessage', 4)
  eventTime = _messages.StringField(5)


class ListAttachmentsResponse(_messages.Message):
  r"""The response message for the ListAttachments endpoint.

  Fields:
    attachments: The list of attachments associated with a case.
    nextPageToken: A token to retrieve the next page of results. Set this in
      the `page_token` field of subsequent `cases.attachments.list` requests.
      If unspecified, there are no more results to retrieve.
  """

  attachments = _messages.MessageField('Attachment', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListCasesResponse(_messages.Message):
  r"""The response message for the ListCases endpoint.

  Fields:
    cases: The list of cases associated with the parent after any filters have
      been applied.
    nextPageToken: A token to retrieve the next page of results. Set this in
      the `page_token` field of subsequent `cases.list` requests. If
      unspecified, there are no more results to retrieve.
  """

  cases = _messages.MessageField('Case', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListCommentsResponse(_messages.Message):
  r"""The response message for the ListComments endpoint.

  Fields:
    comments: List of the comments associated with the case.
    nextPageToken: A token to retrieve the next page of results. Set this in
      the `page_token` field of subsequent `cases.comments.list` requests. If
      unspecified, there are no more results to retrieve.
  """

  comments = _messages.MessageField('Comment', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListSupportEventSubscriptionsResponse(_messages.Message):
  r"""Response message for ListSupportEventSubscriptions.

  Fields:
    nextPageToken: A token, which can be sent as `page_token` to retrieve the
      next page. If this field is omitted, there are no subsequent pages.
    supportEventSubscriptions: The support event subscriptions.
  """

  nextPageToken = _messages.StringField(1)
  supportEventSubscriptions = _messages.MessageField('SupportEventSubscription', 2, repeated=True)


class Media(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Enums:
    ReferenceTypeValueValuesEnum: # gdata.* are outside protos with mising
      documentation

  Fields:
    algorithm: # gdata.* are outside protos with mising documentation
    bigstoreObjectRef: # gdata.* are outside protos with mising documentation
    blobRef: # gdata.* are outside protos with mising documentation
    blobstore2Info: # gdata.* are outside protos with mising documentation
    compositeMedia: # gdata.* are outside protos with mising documentation
    contentType: # gdata.* are outside protos with mising documentation
    contentTypeInfo: # gdata.* are outside protos with mising documentation
    cosmoBinaryReference: # gdata.* are outside protos with mising
      documentation
    crc32cHash: # gdata.* are outside protos with mising documentation
    diffChecksumsResponse: # gdata.* are outside protos with mising
      documentation
    diffDownloadResponse: # gdata.* are outside protos with mising
      documentation
    diffUploadRequest: # gdata.* are outside protos with mising documentation
    diffUploadResponse: # gdata.* are outside protos with mising documentation
    diffVersionResponse: # gdata.* are outside protos with mising
      documentation
    downloadParameters: # gdata.* are outside protos with mising documentation
    filename: # gdata.* are outside protos with mising documentation
    hash: # gdata.* are outside protos with mising documentation
    hashVerified: # gdata.* are outside protos with mising documentation
    inline: # gdata.* are outside protos with mising documentation
    isPotentialRetry: # gdata.* are outside protos with mising documentation
    length: # gdata.* are outside protos with mising documentation
    md5Hash: # gdata.* are outside protos with mising documentation
    mediaId: # gdata.* are outside protos with mising documentation
    objectId: # gdata.* are outside protos with mising documentation
    path: # gdata.* are outside protos with mising documentation
    referenceType: # gdata.* are outside protos with mising documentation
    sha1Hash: # gdata.* are outside protos with mising documentation
    sha256Hash: # gdata.* are outside protos with mising documentation
    sha512Hash: # gdata.* are outside protos with mising documentation
    timestamp: # gdata.* are outside protos with mising documentation
    token: # gdata.* are outside protos with mising documentation
  """

  class ReferenceTypeValueValuesEnum(_messages.Enum):
    r"""# gdata.* are outside protos with mising documentation

    Values:
      PATH: # gdata.* are outside protos with mising documentation
      BLOB_REF: # gdata.* are outside protos with mising documentation
      INLINE: # gdata.* are outside protos with mising documentation
      GET_MEDIA: # gdata.* are outside protos with mising documentation
      COMPOSITE_MEDIA: # gdata.* are outside protos with mising documentation
      BIGSTORE_REF: # gdata.* are outside protos with mising documentation
      DIFF_VERSION_RESPONSE: # gdata.* are outside protos with mising
        documentation
      DIFF_CHECKSUMS_RESPONSE: # gdata.* are outside protos with mising
        documentation
      DIFF_DOWNLOAD_RESPONSE: # gdata.* are outside protos with mising
        documentation
      DIFF_UPLOAD_REQUEST: # gdata.* are outside protos with mising
        documentation
      DIFF_UPLOAD_RESPONSE: # gdata.* are outside protos with mising
        documentation
      COSMO_BINARY_REFERENCE: # gdata.* are outside protos with mising
        documentation
      ARBITRARY_BYTES: # gdata.* are outside protos with mising documentation
    """
    PATH = 0
    BLOB_REF = 1
    INLINE = 2
    GET_MEDIA = 3
    COMPOSITE_MEDIA = 4
    BIGSTORE_REF = 5
    DIFF_VERSION_RESPONSE = 6
    DIFF_CHECKSUMS_RESPONSE = 7
    DIFF_DOWNLOAD_RESPONSE = 8
    DIFF_UPLOAD_REQUEST = 9
    DIFF_UPLOAD_RESPONSE = 10
    COSMO_BINARY_REFERENCE = 11
    ARBITRARY_BYTES = 12

  algorithm = _messages.StringField(1)
  bigstoreObjectRef = _messages.BytesField(2)
  blobRef = _messages.BytesField(3)
  blobstore2Info = _messages.MessageField('Blobstore2Info', 4)
  compositeMedia = _messages.MessageField('CompositeMedia', 5, repeated=True)
  contentType = _messages.StringField(6)
  contentTypeInfo = _messages.MessageField('ContentTypeInfo', 7)
  cosmoBinaryReference = _messages.BytesField(8)
  crc32cHash = _messages.IntegerField(9, variant=_messages.Variant.UINT32)
  diffChecksumsResponse = _messages.MessageField('DiffChecksumsResponse', 10)
  diffDownloadResponse = _messages.MessageField('DiffDownloadResponse', 11)
  diffUploadRequest = _messages.MessageField('DiffUploadRequest', 12)
  diffUploadResponse = _messages.MessageField('DiffUploadResponse', 13)
  diffVersionResponse = _messages.MessageField('DiffVersionResponse', 14)
  downloadParameters = _messages.MessageField('DownloadParameters', 15)
  filename = _messages.StringField(16)
  hash = _messages.StringField(17)
  hashVerified = _messages.BooleanField(18)
  inline = _messages.BytesField(19)
  isPotentialRetry = _messages.BooleanField(20)
  length = _messages.IntegerField(21)
  md5Hash = _messages.BytesField(22)
  mediaId = _messages.BytesField(23)
  objectId = _messages.MessageField('ObjectId', 24)
  path = _messages.StringField(25)
  referenceType = _messages.EnumField('ReferenceTypeValueValuesEnum', 26)
  sha1Hash = _messages.BytesField(27)
  sha256Hash = _messages.BytesField(28)
  sha512Hash = _messages.BytesField(29)
  timestamp = _messages.IntegerField(30, variant=_messages.Variant.UINT64)
  token = _messages.StringField(31)


class ObjectId(_messages.Message):
  r"""# gdata.* are outside protos with mising documentation

  Fields:
    bucketName: # gdata.* are outside protos with mising documentation
    generation: # gdata.* are outside protos with mising documentation
    objectName: # gdata.* are outside protos with mising documentation
  """

  bucketName = _messages.StringField(1)
  generation = _messages.IntegerField(2)
  objectName = _messages.StringField(3)


class Product(_messages.Message):
  r"""The product a case may be associated with.

  Enums:
    ProductLineValueValuesEnum: The product line of the Product.

  Fields:
    productLine: The product line of the Product.
  """

  class ProductLineValueValuesEnum(_messages.Enum):
    r"""The product line of the Product.

    Values:
      PRODUCT_LINE_UNSPECIFIED: Unknown product type.
      GOOGLE_CLOUD: Google Cloud
      GOOGLE_MAPS: Google Maps
    """
    PRODUCT_LINE_UNSPECIFIED = 0
    GOOGLE_CLOUD = 1
    GOOGLE_MAPS = 2

  productLine = _messages.EnumField('ProductLineValueValuesEnum', 1)


class SearchCaseClassificationsResponse(_messages.Message):
  r"""The response message for SearchCaseClassifications endpoint.

  Fields:
    caseClassifications: The classifications retrieved.
    nextPageToken: A token to retrieve the next page of results. Set this in
      the `page_token` field of subsequent `caseClassifications.list`
      requests. If unspecified, there are no more results to retrieve.
  """

  caseClassifications = _messages.MessageField('CaseClassification', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class SearchCasesResponse(_messages.Message):
  r"""The response message for the SearchCases endpoint.

  Fields:
    cases: The list of cases associated with the parent after any filters have
      been applied.
    nextPageToken: A token to retrieve the next page of results. Set this in
      the `page_token` field of subsequent `cases.search` requests. If
      unspecified, there are no more results to retrieve.
  """

  cases = _messages.MessageField('Case', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ShowFeedResponse(_messages.Message):
  r"""The response message for the ShowFeed endpoint.

  Fields:
    feedItems: The list of feed items associated with the given Case.
    nextPageToken: A token to retrieve the next page of results. This should
      be set in the `page_token` field of subsequent `ShowFeedRequests`. If
      unspecified, there are no more results to retrieve.
  """

  feedItems = _messages.MessageField('FeedItem', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class StandardQueryParameters(_messages.Message):
  r"""Query parameters accepted by all methods.

  Enums:
    FXgafvValueValuesEnum: V1 error format.
    AltValueValuesEnum: Data format for response.

  Fields:
    f__xgafv: V1 error format.
    access_token: OAuth access token.
    alt: Data format for response.
    callback: JSONP
    fields: Selector specifying which fields to include in a partial response.
    key: API key. Your API key identifies your project and provides you with
      API access, quota, and reports. Required unless you provide an OAuth 2.0
      token.
    oauth_token: OAuth 2.0 token for the current user.
    prettyPrint: Returns response with indentations and line breaks.
    quotaUser: Available to use for quota purposes for server-side
      applications. Can be any arbitrary string assigned to a user, but should
      not exceed 40 characters.
    trace: A tracing token of the form "token:<tokenid>" to include in api
      requests.
    uploadType: Legacy upload protocol for media (e.g. "media", "multipart").
    upload_protocol: Upload protocol for media (e.g. "raw", "multipart").
  """

  class AltValueValuesEnum(_messages.Enum):
    r"""Data format for response.

    Values:
      json: Responses with Content-Type of application/json
      media: Media download with context-dependent Content-Type
      proto: Responses with Content-Type of application/x-protobuf
    """
    json = 0
    media = 1
    proto = 2

  class FXgafvValueValuesEnum(_messages.Enum):
    r"""V1 error format.

    Values:
      _1: v1 error format
      _2: v2 error format
    """
    _1 = 0
    _2 = 1

  f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1)
  access_token = _messages.StringField(2)
  alt = _messages.EnumField('AltValueValuesEnum', 3, default='json')
  callback = _messages.StringField(4)
  fields = _messages.StringField(5)
  key = _messages.StringField(6)
  oauth_token = _messages.StringField(7)
  prettyPrint = _messages.BooleanField(8, default=True)
  quotaUser = _messages.StringField(9)
  trace = _messages.StringField(10)
  uploadType = _messages.StringField(11)
  upload_protocol = _messages.StringField(12)


class SupportEventSubscription(_messages.Message):
  r"""A support event subscription. You can also manage support event
  subscriptions using other tools: * [`gcloud support support-event-
  subscriptions`](/sdk/gcloud/reference/support/support-event-subscriptions)
  (or [`gcloud beta`](/sdk/gcloud/reference/beta/support/support-event-
  subscriptions) for beta) * [Terraform `google_cloud_support_support_event_su
  bscription`](https://registry.terraform.io/providers/hashicorp/google/latest
  /docs/resources/cloud_support_support_event_subscription) (or [google-beta
  provider](https://registry.terraform.io/providers/hashicorp/google-
  beta/latest/docs/resources/cloud_support_support_event_subscription) for
  beta)

  Enums:
    FailureReasonValueValuesEnum: Output only. Reason why subscription is
      failing. State of subscription must be FAILING in order for this to have
      a value.
    StateValueValuesEnum: Output only. The state of the subscription.

  Fields:
    createTime: Output only. The time at which the subscription was created.
    deleteTime: Output only. The time at which the subscription was deleted.
    failureReason: Output only. Reason why subscription is failing. State of
      subscription must be FAILING in order for this to have a value.
    name: Identifier. The resource name of the support event subscription.
    pubSubTopic: Required. The name of the Pub/Sub topic to publish
      notifications to. Format: projects/{project}/topics/{topic}
    purgeTime: Output only. The time at which the subscription will be purged.
    state: Output only. The state of the subscription.
    updateTime: Output only. The time at which the subscription was last
      updated.
  """

  class FailureReasonValueValuesEnum(_messages.Enum):
    r"""Output only. Reason why subscription is failing. State of subscription
    must be FAILING in order for this to have a value.

    Values:
      FAILURE_REASON_UNSPECIFIED: Unspecified failure reason.
      PERMISSION_DENIED: The service account (i.e. cloud-support-
        apievents@system.gserviceaccount.com) lacks the permission to publish
        to the customer's Pub/Sub topic.
      TOPIC_NOT_FOUND: The specified Pub/Sub topic does not exist.
      OTHER: Message failed to publish due to a system-side error.
    """
    FAILURE_REASON_UNSPECIFIED = 0
    PERMISSION_DENIED = 1
    TOPIC_NOT_FOUND = 2
    OTHER = 3

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. The state of the subscription.

    Values:
      STATE_UNSPECIFIED: Unspecified state.
      WORKING: Subscription is active and working.
      FAILING: Subscription is failing. Notifications cannot be published for
        some reason.
      DELETED: Subscription has been deleted and is pending purge.
        Notifications are not sent for deleted subscriptions. Deleted
        subscriptions are purged after their `purge_time` has passed.
    """
    STATE_UNSPECIFIED = 0
    WORKING = 1
    FAILING = 2
    DELETED = 3

  createTime = _messages.StringField(1)
  deleteTime = _messages.StringField(2)
  failureReason = _messages.EnumField('FailureReasonValueValuesEnum', 3)
  name = _messages.StringField(4)
  pubSubTopic = _messages.StringField(5)
  purgeTime = _messages.StringField(6)
  state = _messages.EnumField('StateValueValuesEnum', 7)
  updateTime = _messages.StringField(8)


class TextContent(_messages.Message):
  r"""Stores text attached to a support object.

  Fields:
    plainText: Content in this field should be rendered and interpreted as-is.
  """

  plainText = _messages.StringField(1)


class UndeleteSupportEventSubscriptionRequest(_messages.Message):
  r"""Request message for UndeleteSupportEventSubscription."""


encoding.AddCustomJsonFieldMapping(
    StandardQueryParameters, 'f__xgafv', '$.xgafv')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
encoding.AddCustomJsonFieldMapping(
    CloudsupportCaseClassificationsSearchRequest, 'product_productLine', 'product.productLine')
