"""Generated message classes for compute version v1.

Creates and runs virtual machines on Google Cloud Platform.
"""
# 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 = 'compute'


class AcceleratorConfig(_messages.Message):
  r"""A specification of the type and number of accelerator cards attached to
  the instance.

  Fields:
    acceleratorCount: The number of the guest accelerator cards exposed to
      this instance.
    acceleratorType: Full or partial URL of the accelerator type resource to
      attach to this instance. If you are creating an instance template,
      specify only the accelerator name.
  """

  acceleratorCount = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  acceleratorType = _messages.StringField(2)


class AcceleratorType(_messages.Message):
  r"""An Accelerator Type resource. (== resource_for beta.acceleratorTypes ==)
  (== resource_for v1.acceleratorTypes ==)

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    deprecated: [Output Only] The deprecation status associated with this
      accelerator type.
    description: [Output Only] An optional textual description of the
      resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] The type of the resource. Always
      compute#acceleratorType for accelerator types.
    maximumCardsPerInstance: [Output Only] Maximum accelerator cards allowed
      per instance.
    name: [Output Only] Name of the resource.
    selfLink: [Output Only] Server-defined fully-qualified URL for this
      resource.
    zone: [Output Only] The name of the zone where the accelerator type
      resides, such as us-central1-a. You must specify this field as part of
      the HTTP request URL. It is not settable as a field in the request body.
  """

  creationTimestamp = _messages.StringField(1)
  deprecated = _messages.MessageField('DeprecationStatus', 2)
  description = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#acceleratorType')
  maximumCardsPerInstance = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  name = _messages.StringField(7)
  selfLink = _messages.StringField(8)
  zone = _messages.StringField(9)


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

  Messages:
    ItemsValue: A list of AcceleratorTypesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of AcceleratorTypesScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#acceleratorTypeAggregatedList for aggregated lists of
      accelerator types.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of AcceleratorTypesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of accelerator types.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A AcceleratorTypesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('AcceleratorTypesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#acceleratorTypeAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class AcceleratorTypeList(_messages.Message):
  r"""Contains a list of accelerator types.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of AcceleratorType resources.
    kind: [Output Only] Type of resource. Always compute#acceleratorTypeList
      for lists of accelerator types.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('AcceleratorType', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#acceleratorTypeList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] An informational warning that appears when the
      accelerator types list is empty.

  Fields:
    acceleratorTypes: [Output Only] A list of accelerator types contained in
      this scope.
    warning: [Output Only] An informational warning that appears when the
      accelerator types list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] An informational warning that appears when the
    accelerator types list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  acceleratorTypes = _messages.MessageField('AcceleratorType', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class AccessConfig(_messages.Message):
  r"""An access configuration attached to an instance's network interface.
  Only one access config per instance is supported.

  Enums:
    TypeValueValuesEnum: The type of configuration. The default and only
      option is ONE_TO_ONE_NAT.

  Fields:
    kind: [Output Only] Type of the resource. Always compute#accessConfig for
      access configs.
    name: The name of this access configuration. The default and recommended
      name is External NAT but you can use any arbitrary string you would
      like. For example, My external IP or Network Access.
    natIP: An external IP address associated with this instance. Specify an
      unused static external IP address available to the project or leave this
      field undefined to use an IP from a shared ephemeral IP address pool. If
      you specify a static external IP address, it must live in the same
      region as the zone of the instance.
    publicPtrDomainName: The DNS domain name for the public PTR record. This
      field can only be set when the set_public_ptr field is enabled.
    setPublicPtr: Specifies whether a public DNS ?PTR? record should be
      created to map the external IP address of the instance to a DNS domain
      name.
    type: The type of configuration. The default and only option is
      ONE_TO_ONE_NAT.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of configuration. The default and only option is
    ONE_TO_ONE_NAT.

    Values:
      ONE_TO_ONE_NAT: <no description>
    """
    ONE_TO_ONE_NAT = 0

  kind = _messages.StringField(1, default=u'compute#accessConfig')
  name = _messages.StringField(2)
  natIP = _messages.StringField(3)
  publicPtrDomainName = _messages.StringField(4)
  setPublicPtr = _messages.BooleanField(5)
  type = _messages.EnumField('TypeValueValuesEnum', 6, default=u'ONE_TO_ONE_NAT')


class Address(_messages.Message):
  r"""A reserved address resource. (== resource_for beta.addresses ==) (==
  resource_for v1.addresses ==) (== resource_for beta.globalAddresses ==) (==
  resource_for v1.globalAddresses ==)

  Enums:
    AddressTypeValueValuesEnum: The type of address to reserve, either
      INTERNAL or EXTERNAL. If unspecified, defaults to EXTERNAL.
    IpVersionValueValuesEnum: The IP Version that will be used by this
      address. Valid options are IPV4 or IPV6. This can only be specified for
      a global address.
    StatusValueValuesEnum: [Output Only] The status of the address, which can
      be one of RESERVING, RESERVED, or IN_USE. An address that is RESERVING
      is currently in the process of being reserved. A RESERVED address is
      currently reserved and available to use. An IN_USE address is currently
      being used by another resource and is not available.

  Fields:
    address: The static IP address represented by this resource.
    addressType: The type of address to reserve, either INTERNAL or EXTERNAL.
      If unspecified, defaults to EXTERNAL.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    ipVersion: The IP Version that will be used by this address. Valid options
      are IPV4 or IPV6. This can only be specified for a global address.
    kind: [Output Only] Type of the resource. Always compute#address for
      addresses.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    region: [Output Only] URL of the region where the regional address
      resides. This field is not applicable to global addresses. You must
      specify this field as part of the HTTP request URL. You cannot set this
      field in the request body.
    selfLink: [Output Only] Server-defined URL for the resource.
    status: [Output Only] The status of the address, which can be one of
      RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
      currently in the process of being reserved. A RESERVED address is
      currently reserved and available to use. An IN_USE address is currently
      being used by another resource and is not available.
    subnetwork: The URL of the subnetwork in which to reserve the address. If
      an IP address is specified, it must be within the subnetwork's IP range.
      This field can only be used with INTERNAL type with
      GCE_ENDPOINT/DNS_RESOLVER purposes.
    users: [Output Only] The URLs of the resources that are using this
      address.
  """

  class AddressTypeValueValuesEnum(_messages.Enum):
    r"""The type of address to reserve, either INTERNAL or EXTERNAL. If
    unspecified, defaults to EXTERNAL.

    Values:
      EXTERNAL: <no description>
      INTERNAL: <no description>
      UNSPECIFIED_TYPE: <no description>
    """
    EXTERNAL = 0
    INTERNAL = 1
    UNSPECIFIED_TYPE = 2

  class IpVersionValueValuesEnum(_messages.Enum):
    r"""The IP Version that will be used by this address. Valid options are
    IPV4 or IPV6. This can only be specified for a global address.

    Values:
      IPV4: <no description>
      IPV6: <no description>
      UNSPECIFIED_VERSION: <no description>
    """
    IPV4 = 0
    IPV6 = 1
    UNSPECIFIED_VERSION = 2

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the address, which can be one of
    RESERVING, RESERVED, or IN_USE. An address that is RESERVING is currently
    in the process of being reserved. A RESERVED address is currently reserved
    and available to use. An IN_USE address is currently being used by another
    resource and is not available.

    Values:
      IN_USE: <no description>
      RESERVED: <no description>
      RESERVING: <no description>
    """
    IN_USE = 0
    RESERVED = 1
    RESERVING = 2

  address = _messages.StringField(1)
  addressType = _messages.EnumField('AddressTypeValueValuesEnum', 2)
  creationTimestamp = _messages.StringField(3)
  description = _messages.StringField(4)
  id = _messages.IntegerField(5, variant=_messages.Variant.UINT64)
  ipVersion = _messages.EnumField('IpVersionValueValuesEnum', 6)
  kind = _messages.StringField(7, default=u'compute#address')
  name = _messages.StringField(8)
  region = _messages.StringField(9)
  selfLink = _messages.StringField(10)
  status = _messages.EnumField('StatusValueValuesEnum', 11)
  subnetwork = _messages.StringField(12)
  users = _messages.StringField(13, repeated=True)


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

  Messages:
    ItemsValue: A list of AddressesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of AddressesScopedList resources.
    kind: [Output Only] Type of resource. Always compute#addressAggregatedList
      for aggregated lists of addresses.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of AddressesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of addresses.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A AddressesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('AddressesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#addressAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class AddressList(_messages.Message):
  r"""Contains a list of addresses.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Address resources.
    kind: [Output Only] Type of resource. Always compute#addressList for lists
      of addresses.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Address', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#addressList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of addresses when the list is empty.

  Fields:
    addresses: [Output Only] A list of addresses contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      addresses when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of
    addresses when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  addresses = _messages.MessageField('Address', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class AliasIpRange(_messages.Message):
  r"""An alias IP range attached to an instance's network interface.

  Fields:
    ipCidrRange: The IP CIDR range represented by this alias IP range. This IP
      CIDR range must belong to the specified subnetwork and cannot contain IP
      addresses reserved by system or used by other network interfaces. This
      range may be a single IP address (e.g. 10.2.3.4), a netmask (e.g. /24)
      or a CIDR format string (e.g. 10.1.2.0/24).
    subnetworkRangeName: Optional subnetwork secondary range name specifying
      the secondary range from which to allocate the IP CIDR range for this
      alias IP range. If left unspecified, the primary range of the subnetwork
      will be used.
  """

  ipCidrRange = _messages.StringField(1)
  subnetworkRangeName = _messages.StringField(2)


class AttachedDisk(_messages.Message):
  r"""An instance-attached disk resource.

  Enums:
    InterfaceValueValuesEnum: Specifies the disk interface to use for
      attaching this disk, which is either SCSI or NVME. The default is SCSI.
      Persistent disks must always use SCSI and the request will fail if you
      attempt to attach a persistent disk in any other format than SCSI. Local
      SSDs can use either NVME or SCSI. For performance characteristics of
      SCSI over NVMe, see Local SSD performance.
    ModeValueValuesEnum: The mode in which to attach this disk, either
      READ_WRITE or READ_ONLY. If not specified, the default is to attach the
      disk in READ_WRITE mode.
    TypeValueValuesEnum: Specifies the type of the disk, either SCRATCH or
      PERSISTENT. If not specified, the default is PERSISTENT.

  Fields:
    autoDelete: Specifies whether the disk will be auto-deleted when the
      instance is deleted (but not when the disk is detached from the
      instance).
    boot: Indicates that this is a boot disk. The virtual machine will use the
      first partition of the disk for its root filesystem.
    deviceName: Specifies a unique device name of your choice that is
      reflected into the /dev/disk/by-id/google-* tree of a Linux operating
      system running within the instance. This name can be used to reference
      the device for mounting, resizing, and so on, from within the instance.
      If not specified, the server chooses a default device name to apply to
      this disk, in the form persistent-disks-x, where x is a number assigned
      by Google Compute Engine. This field is only applicable for persistent
      disks.
    diskEncryptionKey: Encrypts or decrypts a disk using a customer-supplied
      encryption key.  If you are creating a new disk, this field encrypts the
      new disk using an encryption key that you provide. If you are attaching
      an existing disk that is already encrypted, this field decrypts the disk
      using the customer-supplied encryption key.  If you encrypt a disk using
      a customer-supplied key, you must provide the same key again when you
      attempt to use this resource at a later time. For example, you must
      provide the key when you create a snapshot or an image from the disk or
      when you attach the disk to a virtual machine instance.  If you do not
      provide an encryption key, then the disk will be encrypted using an
      automatically generated key and you do not need to provide a key to use
      the disk later.  Instance templates do not store customer-supplied
      encryption keys, so you cannot use your own keys to encrypt disks in a
      managed instance group.
    guestOsFeatures: A list of features to enable on the guest operating
      system. Applicable only for bootable images. Read  Enabling guest
      operating system features to see a list of available options.
    index: [Output Only] A zero-based index to this disk, where 0 is reserved
      for the boot disk. If you have many disks attached to an instance, each
      disk would have a unique index number.
    initializeParams: [Input Only] Specifies the parameters for a new disk
      that will be created alongside the new instance. Use initialization
      parameters to create boot disks or local SSDs attached to the new
      instance.  This property is mutually exclusive with the source property;
      you can only define one or the other, but not both.
    interface: Specifies the disk interface to use for attaching this disk,
      which is either SCSI or NVME. The default is SCSI. Persistent disks must
      always use SCSI and the request will fail if you attempt to attach a
      persistent disk in any other format than SCSI. Local SSDs can use either
      NVME or SCSI. For performance characteristics of SCSI over NVMe, see
      Local SSD performance.
    kind: [Output Only] Type of the resource. Always compute#attachedDisk for
      attached disks.
    licenses: [Output Only] Any valid publicly visible licenses.
    mode: The mode in which to attach this disk, either READ_WRITE or
      READ_ONLY. If not specified, the default is to attach the disk in
      READ_WRITE mode.
    source: Specifies a valid partial or full URL to an existing Persistent
      Disk resource. When creating a new instance, one of
      initializeParams.sourceImage or disks.source is required except for
      local SSD.  If desired, you can also attach existing non-root persistent
      disks using this property. This field is only applicable for persistent
      disks.  Note that for InstanceTemplate, specify the disk name, not the
      URL for the disk.
    type: Specifies the type of the disk, either SCRATCH or PERSISTENT. If not
      specified, the default is PERSISTENT.
  """

  class InterfaceValueValuesEnum(_messages.Enum):
    r"""Specifies the disk interface to use for attaching this disk, which is
    either SCSI or NVME. The default is SCSI. Persistent disks must always use
    SCSI and the request will fail if you attempt to attach a persistent disk
    in any other format than SCSI. Local SSDs can use either NVME or SCSI. For
    performance characteristics of SCSI over NVMe, see Local SSD performance.

    Values:
      NVME: <no description>
      SCSI: <no description>
    """
    NVME = 0
    SCSI = 1

  class ModeValueValuesEnum(_messages.Enum):
    r"""The mode in which to attach this disk, either READ_WRITE or READ_ONLY.
    If not specified, the default is to attach the disk in READ_WRITE mode.

    Values:
      READ_ONLY: <no description>
      READ_WRITE: <no description>
    """
    READ_ONLY = 0
    READ_WRITE = 1

  class TypeValueValuesEnum(_messages.Enum):
    r"""Specifies the type of the disk, either SCRATCH or PERSISTENT. If not
    specified, the default is PERSISTENT.

    Values:
      PERSISTENT: <no description>
      SCRATCH: <no description>
    """
    PERSISTENT = 0
    SCRATCH = 1

  autoDelete = _messages.BooleanField(1)
  boot = _messages.BooleanField(2)
  deviceName = _messages.StringField(3)
  diskEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 4)
  guestOsFeatures = _messages.MessageField('GuestOsFeature', 5, repeated=True)
  index = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  initializeParams = _messages.MessageField('AttachedDiskInitializeParams', 7)
  interface = _messages.EnumField('InterfaceValueValuesEnum', 8)
  kind = _messages.StringField(9, default=u'compute#attachedDisk')
  licenses = _messages.StringField(10, repeated=True)
  mode = _messages.EnumField('ModeValueValuesEnum', 11)
  source = _messages.StringField(12)
  type = _messages.EnumField('TypeValueValuesEnum', 13)


class AttachedDiskInitializeParams(_messages.Message):
  r"""[Input Only] Specifies the parameters for a new disk that will be
  created alongside the new instance. Use initialization parameters to create
  boot disks or local SSDs attached to the new instance.  This property is
  mutually exclusive with the source property; you can only define one or the
  other, but not both.

  Messages:
    LabelsValue: Labels to apply to this disk. These can be later modified by
      the disks.setLabels method. This field is only applicable for persistent
      disks.

  Fields:
    diskName: Specifies the disk name. If not specified, the default is to use
      the name of the instance.
    diskSizeGb: Specifies the size of the disk in base-2 GB.
    diskType: Specifies the disk type to use to create the instance. If not
      specified, the default is pd-standard, specified using the full URL. For
      example: https://www.googleapis.com/compute/v1/projects/project/zones/zo
      ne/diskTypes/pd-standard   Other values include pd-ssd and local-ssd. If
      you define this field, you can provide either the full or partial URL.
      For example, the following are valid values:   - https://www.googleapis.
      com/compute/v1/projects/project/zones/zone/diskTypes/diskType  -
      projects/project/zones/zone/diskTypes/diskType  -
      zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this is
      the name of the disk type, not URL.
    labels: Labels to apply to this disk. These can be later modified by the
      disks.setLabels method. This field is only applicable for persistent
      disks.
    sourceImage: The source image to create this disk. When creating a new
      instance, one of initializeParams.sourceImage or disks.source is
      required except for local SSD.  To create a disk with one of the public
      operating system images, specify the image by its family name. For
      example, specify family/debian-8 to use the latest Debian 8 image:
      projects/debian-cloud/global/images/family/debian-8   Alternatively, use
      a specific version of a public operating system image: projects/debian-
      cloud/global/images/debian-8-jessie-vYYYYMMDD   To create a disk with a
      custom image that you created, specify the image name in the following
      format: global/images/my-custom-image   You can also specify a custom
      image by its image family, which returns the latest version of the image
      in that family. Replace the image name with family/family-name:
      global/images/family/my-image-family   If the source image is deleted
      later, this field will not be set.
    sourceImageEncryptionKey: The customer-supplied encryption key of the
      source image. Required if the source image is protected by a customer-
      supplied encryption key.  Instance templates do not store customer-
      supplied encryption keys, so you cannot create disks for instances in a
      managed instance group if the source images are encrypted with your own
      keys.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Labels to apply to this disk. These can be later modified by the
    disks.setLabels method. This field is only applicable for persistent
    disks.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  diskName = _messages.StringField(1)
  diskSizeGb = _messages.IntegerField(2)
  diskType = _messages.StringField(3)
  labels = _messages.MessageField('LabelsValue', 4)
  sourceImage = _messages.StringField(5)
  sourceImageEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 6)


class Autoscaler(_messages.Message):
  r"""Represents an Autoscaler resource. Autoscalers allow you to
  automatically scale virtual machine instances in managed instance groups
  according to an autoscaling policy that you define. For more information,
  read Autoscaling Groups of Instances. (== resource_for beta.autoscalers ==)
  (== resource_for v1.autoscalers ==) (== resource_for beta.regionAutoscalers
  ==) (== resource_for v1.regionAutoscalers ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the autoscaler
      configuration.

  Fields:
    autoscalingPolicy: The configuration parameters for the autoscaling
      algorithm. You can define one or more of the policies for an autoscaler:
      cpuUtilization, customMetricUtilizations, and loadBalancingUtilization.
      If none of these are specified, the default will be to autoscale based
      on cpuUtilization to 0.6 or 60%.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#autoscaler for
      autoscalers.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    region: [Output Only] URL of the region where the instance group resides
      (for autoscalers living in regional scope).
    selfLink: [Output Only] Server-defined URL for the resource.
    status: [Output Only] The status of the autoscaler configuration.
    statusDetails: [Output Only] Human-readable details about the current
      state of the autoscaler. Read the documentation for Commonly returned
      status messages for examples of status messages you might encounter.
    target: URL of the managed instance group that this autoscaler will scale.
    zone: [Output Only] URL of the zone where the instance group resides (for
      autoscalers living in zonal scope).
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the autoscaler configuration.

    Values:
      ACTIVE: <no description>
      DELETING: <no description>
      ERROR: <no description>
      PENDING: <no description>
    """
    ACTIVE = 0
    DELETING = 1
    ERROR = 2
    PENDING = 3

  autoscalingPolicy = _messages.MessageField('AutoscalingPolicy', 1)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#autoscaler')
  name = _messages.StringField(6)
  region = _messages.StringField(7)
  selfLink = _messages.StringField(8)
  status = _messages.EnumField('StatusValueValuesEnum', 9)
  statusDetails = _messages.MessageField('AutoscalerStatusDetails', 10, repeated=True)
  target = _messages.StringField(11)
  zone = _messages.StringField(12)


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

  Messages:
    ItemsValue: A list of AutoscalersScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of AutoscalersScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#autoscalerAggregatedList for aggregated lists of autoscalers.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of AutoscalersScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of autoscalers.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A AutoscalersScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('AutoscalersScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#autoscalerAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class AutoscalerList(_messages.Message):
  r"""Contains a list of Autoscaler resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Autoscaler resources.
    kind: [Output Only] Type of resource. Always compute#autoscalerList for
      lists of autoscalers.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Autoscaler', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#autoscalerList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Enums:
    TypeValueValuesEnum: The type of error returned.

  Fields:
    message: The status message.
    type: The type of error returned.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of error returned.

    Values:
      ALL_INSTANCES_UNHEALTHY: <no description>
      BACKEND_SERVICE_DOES_NOT_EXIST: <no description>
      CAPPED_AT_MAX_NUM_REPLICAS: <no description>
      CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE: <no description>
      CUSTOM_METRIC_INVALID: <no description>
      MIN_EQUALS_MAX: <no description>
      MISSING_CUSTOM_METRIC_DATA_POINTS: <no description>
      MISSING_LOAD_BALANCING_DATA_POINTS: <no description>
      MORE_THAN_ONE_BACKEND_SERVICE: <no description>
      NOT_ENOUGH_QUOTA_AVAILABLE: <no description>
      REGION_RESOURCE_STOCKOUT: <no description>
      SCALING_TARGET_DOES_NOT_EXIST: <no description>
      UNKNOWN: <no description>
      UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION: <no description>
      ZONE_RESOURCE_STOCKOUT: <no description>
    """
    ALL_INSTANCES_UNHEALTHY = 0
    BACKEND_SERVICE_DOES_NOT_EXIST = 1
    CAPPED_AT_MAX_NUM_REPLICAS = 2
    CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE = 3
    CUSTOM_METRIC_INVALID = 4
    MIN_EQUALS_MAX = 5
    MISSING_CUSTOM_METRIC_DATA_POINTS = 6
    MISSING_LOAD_BALANCING_DATA_POINTS = 7
    MORE_THAN_ONE_BACKEND_SERVICE = 8
    NOT_ENOUGH_QUOTA_AVAILABLE = 9
    REGION_RESOURCE_STOCKOUT = 10
    SCALING_TARGET_DOES_NOT_EXIST = 11
    UNKNOWN = 12
    UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION = 13
    ZONE_RESOURCE_STOCKOUT = 14

  message = _messages.StringField(1)
  type = _messages.EnumField('TypeValueValuesEnum', 2)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of autoscalers when the list is empty.

  Fields:
    autoscalers: [Output Only] A list of autoscalers contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      autoscalers when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of
    autoscalers when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  autoscalers = _messages.MessageField('Autoscaler', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class AutoscalingPolicy(_messages.Message):
  r"""Cloud Autoscaler policy.

  Fields:
    coolDownPeriodSec: The number of seconds that the autoscaler should wait
      before it starts collecting information from a new instance. This
      prevents the autoscaler from collecting information when the instance is
      initializing, during which the collected usage would not be reliable.
      The default time autoscaler waits is 60 seconds.  Virtual machine
      initialization times might vary because of numerous factors. We
      recommend that you test how long an instance may take to initialize. To
      do this, create an instance and time the startup process.
    cpuUtilization: Defines the CPU utilization policy that allows the
      autoscaler to scale based on the average CPU utilization of a managed
      instance group.
    customMetricUtilizations: Configuration parameters of autoscaling based on
      a custom metric.
    loadBalancingUtilization: Configuration parameters of autoscaling based on
      load balancer.
    maxNumReplicas: The maximum number of instances that the autoscaler can
      scale up to. This is required when creating or updating an autoscaler.
      The maximum number of replicas should not be lower than minimal number
      of replicas.
    minNumReplicas: The minimum number of replicas that the autoscaler can
      scale down to. This cannot be less than 0. If not provided, autoscaler
      will choose a default value depending on maximum number of instances
      allowed.
  """

  coolDownPeriodSec = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  cpuUtilization = _messages.MessageField('AutoscalingPolicyCpuUtilization', 2)
  customMetricUtilizations = _messages.MessageField('AutoscalingPolicyCustomMetricUtilization', 3, repeated=True)
  loadBalancingUtilization = _messages.MessageField('AutoscalingPolicyLoadBalancingUtilization', 4)
  maxNumReplicas = _messages.IntegerField(5, variant=_messages.Variant.INT32)
  minNumReplicas = _messages.IntegerField(6, variant=_messages.Variant.INT32)


class AutoscalingPolicyCpuUtilization(_messages.Message):
  r"""CPU utilization policy.

  Fields:
    utilizationTarget: The target CPU utilization that the autoscaler should
      maintain. Must be a float value in the range (0, 1]. If not specified,
      the default is 0.6.  If the CPU level is below the target utilization,
      the autoscaler scales down the number of instances until it reaches the
      minimum number of instances you specified or until the average CPU of
      your instances reaches the target utilization.  If the average CPU is
      above the target utilization, the autoscaler scales up until it reaches
      the maximum number of instances you specified or until the average
      utilization reaches the target utilization.
  """

  utilizationTarget = _messages.FloatField(1)


class AutoscalingPolicyCustomMetricUtilization(_messages.Message):
  r"""Custom utilization metric policy.

  Enums:
    UtilizationTargetTypeValueValuesEnum: Defines how target utilization value
      is expressed for a Stackdriver Monitoring metric. Either GAUGE,
      DELTA_PER_SECOND, or DELTA_PER_MINUTE. If not specified, the default is
      GAUGE.

  Fields:
    metric: The identifier (type) of the Stackdriver Monitoring metric. The
      metric cannot have negative values.  The metric must have a value type
      of INT64 or DOUBLE.
    utilizationTarget: The target value of the metric that autoscaler should
      maintain. This must be a positive value. A utilization metric scales
      number of virtual machines handling requests to increase or decrease
      proportionally to the metric.  For example, a good metric to use as a
      utilization_target is
      compute.googleapis.com/instance/network/received_bytes_count. The
      autoscaler will work to keep this value constant for each of the
      instances.
    utilizationTargetType: Defines how target utilization value is expressed
      for a Stackdriver Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or
      DELTA_PER_MINUTE. If not specified, the default is GAUGE.
  """

  class UtilizationTargetTypeValueValuesEnum(_messages.Enum):
    r"""Defines how target utilization value is expressed for a Stackdriver
    Monitoring metric. Either GAUGE, DELTA_PER_SECOND, or DELTA_PER_MINUTE. If
    not specified, the default is GAUGE.

    Values:
      DELTA_PER_MINUTE: <no description>
      DELTA_PER_SECOND: <no description>
      GAUGE: <no description>
    """
    DELTA_PER_MINUTE = 0
    DELTA_PER_SECOND = 1
    GAUGE = 2

  metric = _messages.StringField(1)
  utilizationTarget = _messages.FloatField(2)
  utilizationTargetType = _messages.EnumField('UtilizationTargetTypeValueValuesEnum', 3)


class AutoscalingPolicyLoadBalancingUtilization(_messages.Message):
  r"""Configuration parameters of autoscaling based on load balancing.

  Fields:
    utilizationTarget: Fraction of backend capacity utilization (set in
      HTTP(s) load balancing configuration) that autoscaler should maintain.
      Must be a positive float value. If not defined, the default is 0.8.
  """

  utilizationTarget = _messages.FloatField(1)


class Backend(_messages.Message):
  r"""Message containing information of one individual backend.

  Enums:
    BalancingModeValueValuesEnum: Specifies the balancing mode for this
      backend. For global HTTP(S) or TCP/SSL load balancing, the default is
      UTILIZATION. Valid values are UTILIZATION, RATE (for HTTP(S)) and
      CONNECTION (for TCP/SSL).  For Internal Load Balancing, the default and
      only supported mode is CONNECTION.

  Fields:
    balancingMode: Specifies the balancing mode for this backend. For global
      HTTP(S) or TCP/SSL load balancing, the default is UTILIZATION. Valid
      values are UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP/SSL).
      For Internal Load Balancing, the default and only supported mode is
      CONNECTION.
    capacityScaler: A multiplier applied to the group's maximum servicing
      capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1,
      which means the group will serve up to 100% of its configured capacity
      (depending on balancingMode). A setting of 0 means the group is
      completely drained, offering 0% of its available Capacity. Valid range
      is [0.0,1.0].  This cannot be used for internal load balancing.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    group: The fully-qualified URL of a Instance Group resource. This instance
      group defines the list of instances that serve traffic. Member virtual
      machine instances from each instance group must live in the same zone as
      the instance group itself. No two backends in a backend service are
      allowed to use same Instance Group resource.  Note that you must specify
      an Instance Group resource using the fully-qualified URL, rather than a
      partial URL.  When the BackendService has load balancing scheme
      INTERNAL, the instance group must be within the same region as the
      BackendService.
    maxConnections: The max number of simultaneous connections for the group.
      Can be used with either CONNECTION or UTILIZATION balancing modes. For
      CONNECTION mode, either maxConnections or maxConnectionsPerInstance must
      be set.  This cannot be used for internal load balancing.
    maxConnectionsPerInstance: The max number of simultaneous connections that
      a single backend instance can handle. This is used to calculate the
      capacity of the group. Can be used in either CONNECTION or UTILIZATION
      balancing modes. For CONNECTION mode, either maxConnections or
      maxConnectionsPerInstance must be set.  This cannot be used for internal
      load balancing.
    maxRate: The max requests per second (RPS) of the group. Can be used with
      either RATE or UTILIZATION balancing modes, but required if RATE mode.
      For RATE mode, either maxRate or maxRatePerInstance must be set.  This
      cannot be used for internal load balancing.
    maxRatePerInstance: The max requests per second (RPS) that a single
      backend instance can handle. This is used to calculate the capacity of
      the group. Can be used in either balancing mode. For RATE mode, either
      maxRate or maxRatePerInstance must be set.  This cannot be used for
      internal load balancing.
    maxUtilization: Used when balancingMode is UTILIZATION. This ratio defines
      the CPU utilization target for the group. The default is 0.8. Valid
      range is [0.0, 1.0].  This cannot be used for internal load balancing.
  """

  class BalancingModeValueValuesEnum(_messages.Enum):
    r"""Specifies the balancing mode for this backend. For global HTTP(S) or
    TCP/SSL load balancing, the default is UTILIZATION. Valid values are
    UTILIZATION, RATE (for HTTP(S)) and CONNECTION (for TCP/SSL).  For
    Internal Load Balancing, the default and only supported mode is
    CONNECTION.

    Values:
      CONNECTION: <no description>
      RATE: <no description>
      UTILIZATION: <no description>
    """
    CONNECTION = 0
    RATE = 1
    UTILIZATION = 2

  balancingMode = _messages.EnumField('BalancingModeValueValuesEnum', 1)
  capacityScaler = _messages.FloatField(2, variant=_messages.Variant.FLOAT)
  description = _messages.StringField(3)
  group = _messages.StringField(4)
  maxConnections = _messages.IntegerField(5, variant=_messages.Variant.INT32)
  maxConnectionsPerInstance = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  maxRate = _messages.IntegerField(7, variant=_messages.Variant.INT32)
  maxRatePerInstance = _messages.FloatField(8, variant=_messages.Variant.FLOAT)
  maxUtilization = _messages.FloatField(9, variant=_messages.Variant.FLOAT)


class BackendBucket(_messages.Message):
  r"""A BackendBucket resource. This resource defines a Cloud Storage bucket.

  Fields:
    bucketName: Cloud Storage bucket name.
    cdnPolicy: Cloud CDN Coniguration for this BackendBucket.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional textual description of the resource; provided by
      the client when the resource is created.
    enableCdn: If true, enable Cloud CDN for this BackendBucket.
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    kind: Type of the resource.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    selfLink: [Output Only] Server-defined URL for the resource.
  """

  bucketName = _messages.StringField(1)
  cdnPolicy = _messages.MessageField('BackendBucketCdnPolicy', 2)
  creationTimestamp = _messages.StringField(3)
  description = _messages.StringField(4)
  enableCdn = _messages.BooleanField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#backendBucket')
  name = _messages.StringField(8)
  selfLink = _messages.StringField(9)


class BackendBucketCdnPolicy(_messages.Message):
  r"""Message containing Cloud CDN configuration for a backend bucket.

  Fields:
    signedUrlCacheMaxAgeSec: Number of seconds up to which the response to a
      signed URL request will be cached in the CDN. After this time period,
      the Signed URL will be revalidated before being served. Defaults to 1hr
      (3600s). If this field is set, Cloud CDN will internally act as though
      all responses from this bucket had a ?Cache-Control: public, max-
      age=[TTL]? header, regardless of any existing Cache-Control header. The
      actual headers served in responses will not be altered.
    signedUrlKeyNames: [Output Only] Names of the keys currently configured
      for Cloud CDN Signed URL on this backend bucket.
  """

  signedUrlCacheMaxAgeSec = _messages.IntegerField(1)
  signedUrlKeyNames = _messages.StringField(2, repeated=True)


class BackendBucketList(_messages.Message):
  r"""Contains a list of BackendBucket resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of BackendBucket resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('BackendBucket', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#backendBucketList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class BackendService(_messages.Message):
  r"""A BackendService resource. This resource defines a group of backend
  virtual machines and their serving capacity. (== resource_for
  v1.backendService ==) (== resource_for beta.backendService ==)

  Enums:
    LoadBalancingSchemeValueValuesEnum: Indicates whether the backend service
      will be used with internal or external load balancing. A backend service
      created for one type of load balancing cannot be used with the other.
      Possible values are INTERNAL and EXTERNAL.
    ProtocolValueValuesEnum: The protocol this BackendService uses to
      communicate with backends.  Possible values are HTTP, HTTPS, TCP, and
      SSL. The default is HTTP.  For internal load balancing, the possible
      values are TCP and UDP, and the default is TCP.
    SessionAffinityValueValuesEnum: Type of session affinity to use. The
      default is NONE.  When the load balancing scheme is EXTERNAL, can be
      NONE, CLIENT_IP, or GENERATED_COOKIE.  When the load balancing scheme is
      INTERNAL, can be NONE, CLIENT_IP, CLIENT_IP_PROTO, or
      CLIENT_IP_PORT_PROTO.  When the protocol is UDP, this field is not used.

  Fields:
    affinityCookieTtlSec: Lifetime of cookies in seconds if session_affinity
      is GENERATED_COOKIE. If set to 0, the cookie is non-persistent and lasts
      only until the end of the browser session (or equivalent). The maximum
      allowed value for TTL is one day.  When the load balancing scheme is
      INTERNAL, this field is not used.
    backends: The list of backends that serve this BackendService.
    cdnPolicy: Cloud CDN configuration for this BackendService.
    connectionDraining: A ConnectionDraining attribute.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    enableCDN: If true, enable Cloud CDN for this BackendService.  When the
      load balancing scheme is INTERNAL, this field is not used.
    fingerprint: Fingerprint of this resource. A hash of the contents stored
      in this object. This field is used in optimistic locking. This field
      will be ignored when inserting a BackendService. An up-to-date
      fingerprint must be provided in order to update the BackendService.  To
      see the latest fingerprint, make a get() request to retrieve a
      BackendService.
    healthChecks: The list of URLs to the HttpHealthCheck or HttpsHealthCheck
      resource for health checking this BackendService. Currently at most one
      health check can be specified, and a health check is required for
      Compute Engine backend services. A health check must not be specified
      for App Engine backend and Cloud Function backend.  For internal load
      balancing, a URL to a HealthCheck resource must be specified instead.
    iap: A BackendServiceIAP attribute.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of resource. Always compute#backendService for
      backend services.
    loadBalancingScheme: Indicates whether the backend service will be used
      with internal or external load balancing. A backend service created for
      one type of load balancing cannot be used with the other. Possible
      values are INTERNAL and EXTERNAL.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    port: Deprecated in favor of portName. The TCP port to connect on the
      backend. The default value is 80.  This cannot be used for internal load
      balancing.
    portName: Name of backend port. The same name should appear in the
      instance groups referenced by this service. Required when the load
      balancing scheme is EXTERNAL.  When the load balancing scheme is
      INTERNAL, this field is not used.
    protocol: The protocol this BackendService uses to communicate with
      backends.  Possible values are HTTP, HTTPS, TCP, and SSL. The default is
      HTTP.  For internal load balancing, the possible values are TCP and UDP,
      and the default is TCP.
    region: [Output Only] URL of the region where the regional backend service
      resides. This field is not applicable to global backend services. You
      must specify this field as part of the HTTP request URL. It is not
      settable as a field in the request body.
    selfLink: [Output Only] Server-defined URL for the resource.
    sessionAffinity: Type of session affinity to use. The default is NONE.
      When the load balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or
      GENERATED_COOKIE.  When the load balancing scheme is INTERNAL, can be
      NONE, CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.  When the
      protocol is UDP, this field is not used.
    timeoutSec: How many seconds to wait for the backend before considering it
      a failed request. Default is 30 seconds.
  """

  class LoadBalancingSchemeValueValuesEnum(_messages.Enum):
    r"""Indicates whether the backend service will be used with internal or
    external load balancing. A backend service created for one type of load
    balancing cannot be used with the other. Possible values are INTERNAL and
    EXTERNAL.

    Values:
      EXTERNAL: <no description>
      INTERNAL: <no description>
      INVALID_LOAD_BALANCING_SCHEME: <no description>
    """
    EXTERNAL = 0
    INTERNAL = 1
    INVALID_LOAD_BALANCING_SCHEME = 2

  class ProtocolValueValuesEnum(_messages.Enum):
    r"""The protocol this BackendService uses to communicate with backends.
    Possible values are HTTP, HTTPS, TCP, and SSL. The default is HTTP.  For
    internal load balancing, the possible values are TCP and UDP, and the
    default is TCP.

    Values:
      HTTP: <no description>
      HTTPS: <no description>
      SSL: <no description>
      TCP: <no description>
      UDP: <no description>
    """
    HTTP = 0
    HTTPS = 1
    SSL = 2
    TCP = 3
    UDP = 4

  class SessionAffinityValueValuesEnum(_messages.Enum):
    r"""Type of session affinity to use. The default is NONE.  When the load
    balancing scheme is EXTERNAL, can be NONE, CLIENT_IP, or GENERATED_COOKIE.
    When the load balancing scheme is INTERNAL, can be NONE, CLIENT_IP,
    CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.  When the protocol is UDP, this
    field is not used.

    Values:
      CLIENT_IP: <no description>
      CLIENT_IP_PORT_PROTO: <no description>
      CLIENT_IP_PROTO: <no description>
      GENERATED_COOKIE: <no description>
      NONE: <no description>
    """
    CLIENT_IP = 0
    CLIENT_IP_PORT_PROTO = 1
    CLIENT_IP_PROTO = 2
    GENERATED_COOKIE = 3
    NONE = 4

  affinityCookieTtlSec = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  backends = _messages.MessageField('Backend', 2, repeated=True)
  cdnPolicy = _messages.MessageField('BackendServiceCdnPolicy', 3)
  connectionDraining = _messages.MessageField('ConnectionDraining', 4)
  creationTimestamp = _messages.StringField(5)
  description = _messages.StringField(6)
  enableCDN = _messages.BooleanField(7)
  fingerprint = _messages.BytesField(8)
  healthChecks = _messages.StringField(9, repeated=True)
  iap = _messages.MessageField('BackendServiceIAP', 10)
  id = _messages.IntegerField(11, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(12, default=u'compute#backendService')
  loadBalancingScheme = _messages.EnumField('LoadBalancingSchemeValueValuesEnum', 13)
  name = _messages.StringField(14)
  port = _messages.IntegerField(15, variant=_messages.Variant.INT32)
  portName = _messages.StringField(16)
  protocol = _messages.EnumField('ProtocolValueValuesEnum', 17)
  region = _messages.StringField(18)
  selfLink = _messages.StringField(19)
  sessionAffinity = _messages.EnumField('SessionAffinityValueValuesEnum', 20)
  timeoutSec = _messages.IntegerField(21, variant=_messages.Variant.INT32)


class BackendServiceAggregatedList(_messages.Message):
  r"""Contains a list of BackendServicesScopedList.

  Messages:
    ItemsValue: A list of BackendServicesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of BackendServicesScopedList resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of BackendServicesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of
        BackendServices.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A BackendServicesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('BackendServicesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#backendServiceAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class BackendServiceCdnPolicy(_messages.Message):
  r"""Message containing Cloud CDN configuration for a backend service.

  Fields:
    cacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
    signedUrlCacheMaxAgeSec: Number of seconds up to which the response to a
      signed URL request will be cached in the CDN. After this time period,
      the Signed URL will be revalidated before being served. Defaults to 1hr
      (3600s). If this field is set, Cloud CDN will internally act as though
      all responses from this backend had a ?Cache-Control: public, max-
      age=[TTL]? header, regardless of any existing Cache-Control header. The
      actual headers served in responses will not be altered.
    signedUrlKeyNames: [Output Only] Names of the keys currently configured
      for Cloud CDN Signed URL on this backend service.
  """

  cacheKeyPolicy = _messages.MessageField('CacheKeyPolicy', 1)
  signedUrlCacheMaxAgeSec = _messages.IntegerField(2)
  signedUrlKeyNames = _messages.StringField(3, repeated=True)


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

  Fields:
    healthStatus: A HealthStatus attribute.
    kind: [Output Only] Type of resource. Always
      compute#backendServiceGroupHealth for the health of backend services.
  """

  healthStatus = _messages.MessageField('HealthStatus', 1, repeated=True)
  kind = _messages.StringField(2, default=u'compute#backendServiceGroupHealth')


class BackendServiceIAP(_messages.Message):
  r"""Identity-Aware Proxy

  Fields:
    enabled: A boolean attribute.
    oauth2ClientId: A string attribute.
    oauth2ClientSecret: A string attribute.
    oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the field
      oauth2_client_secret above.
  """

  enabled = _messages.BooleanField(1)
  oauth2ClientId = _messages.StringField(2)
  oauth2ClientSecret = _messages.StringField(3)
  oauth2ClientSecretSha256 = _messages.StringField(4)


class BackendServiceList(_messages.Message):
  r"""Contains a list of BackendService resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of BackendService resources.
    kind: [Output Only] Type of resource. Always compute#backendServiceList
      for lists of backend services.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('BackendService', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#backendServiceList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: Informational warning which replaces the list of backend
      services when the list is empty.

  Fields:
    backendServices: A list of BackendServices contained in this scope.
    warning: Informational warning which replaces the list of backend services
      when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of backend services when
    the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  backendServices = _messages.MessageField('BackendService', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    host: If set, this invalidation rule will only apply to requests with a
      Host header matching host.
    path: A string attribute.
  """

  host = _messages.StringField(1)
  path = _messages.StringField(2)


class CacheKeyPolicy(_messages.Message):
  r"""Message containing what to include in the cache key for a request for
  Cloud CDN.

  Fields:
    includeHost: If true, requests to different hosts will be cached
      separately.
    includeProtocol: If true, http and https requests will be cached
      separately.
    includeQueryString: If true, include query string parameters in the cache
      key according to query_string_whitelist and query_string_blacklist. If
      neither is set, the entire query string will be included. If false, the
      query string will be excluded from the cache key entirely.
    queryStringBlacklist: Names of query string parameters to exclude in cache
      keys. All other parameters will be included. Either specify
      query_string_whitelist or query_string_blacklist, not both. '&' and '='
      will be percent encoded and not treated as delimiters.
    queryStringWhitelist: Names of query string parameters to include in cache
      keys. All other parameters will be excluded. Either specify
      query_string_whitelist or query_string_blacklist, not both. '&' and '='
      will be percent encoded and not treated as delimiters.
  """

  includeHost = _messages.BooleanField(1)
  includeProtocol = _messages.BooleanField(2)
  includeQueryString = _messages.BooleanField(3)
  queryStringBlacklist = _messages.StringField(4, repeated=True)
  queryStringWhitelist = _messages.StringField(5, repeated=True)


class Commitment(_messages.Message):
  r"""Represents a Commitment resource. Creating a Commitment resource means
  that you are purchasing a committed use contract with an explicit start and
  end time. You can create commitments based on vCPUs and memory usage and
  receive discounted rates. For full details, read Signing Up for Committed
  Use Discounts.  Committed use discounts are subject to Google Cloud
  Platform's Service Specific Terms. By purchasing a committed use discount,
  you agree to these terms. Committed use discounts will not renew, so you
  must purchase a new commitment to continue receiving discounts. (==
  resource_for beta.commitments ==) (== resource_for v1.commitments ==)

  Enums:
    PlanValueValuesEnum: The plan for this commitment, which determines
      duration and discount rate. The currently supported plans are
      TWELVE_MONTH (1 year), and THIRTY_SIX_MONTH (3 years).
    StatusValueValuesEnum: [Output Only] Status of the commitment with regards
      to eventual expiration (each commitment has an end date defined). One of
      the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    endTimestamp: [Output Only] Commitment end time in RFC3339 text format.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#commitment for
      commitments.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    plan: The plan for this commitment, which determines duration and discount
      rate. The currently supported plans are TWELVE_MONTH (1 year), and
      THIRTY_SIX_MONTH (3 years).
    region: [Output Only] URL of the region where this commitment may be used.
    resources: A list of commitment amounts for particular resources. Note
      that VCPU and MEMORY resource commitments must occur together.
    selfLink: [Output Only] Server-defined URL for the resource.
    startTimestamp: [Output Only] Commitment start time in RFC3339 text
      format.
    status: [Output Only] Status of the commitment with regards to eventual
      expiration (each commitment has an end date defined). One of the
      following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
    statusMessage: [Output Only] An optional, human-readable explanation of
      the status.
  """

  class PlanValueValuesEnum(_messages.Enum):
    r"""The plan for this commitment, which determines duration and discount
    rate. The currently supported plans are TWELVE_MONTH (1 year), and
    THIRTY_SIX_MONTH (3 years).

    Values:
      INVALID: <no description>
      THIRTY_SIX_MONTH: <no description>
      TWELVE_MONTH: <no description>
    """
    INVALID = 0
    THIRTY_SIX_MONTH = 1
    TWELVE_MONTH = 2

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] Status of the commitment with regards to eventual
    expiration (each commitment has an end date defined). One of the following
    values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.

    Values:
      ACTIVE: <no description>
      CREATING: <no description>
      EXPIRED: <no description>
      NOT_YET_ACTIVE: <no description>
    """
    ACTIVE = 0
    CREATING = 1
    EXPIRED = 2
    NOT_YET_ACTIVE = 3

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  endTimestamp = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#commitment')
  name = _messages.StringField(6)
  plan = _messages.EnumField('PlanValueValuesEnum', 7)
  region = _messages.StringField(8)
  resources = _messages.MessageField('ResourceCommitment', 9, repeated=True)
  selfLink = _messages.StringField(10)
  startTimestamp = _messages.StringField(11)
  status = _messages.EnumField('StatusValueValuesEnum', 12)
  statusMessage = _messages.StringField(13)


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

  Messages:
    ItemsValue: A list of CommitmentsScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of CommitmentsScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#commitmentAggregatedList for aggregated lists of commitments.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of CommitmentsScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of commitments.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A CommitmentsScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('CommitmentsScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#commitmentAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class CommitmentList(_messages.Message):
  r"""Contains a list of Commitment resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Commitment resources.
    kind: [Output Only] Type of resource. Always compute#commitmentList for
      lists of commitments.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Commitment', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#commitmentList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of commitments when the list is empty.

  Fields:
    commitments: [Output Only] A list of commitments contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      commitments when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of
    commitments when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  commitments = _messages.MessageField('Commitment', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    acceleratorType: Name of the accelerator type to return.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  acceleratorType = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    address: Name of the address resource to delete.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  address = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    address: Name of the address resource to return.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  address = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    address: A Address resource to be passed as the request body.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  address = _messages.MessageField('Address', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    autoscaler: Name of the autoscaler to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: Name of the zone for this request.
  """

  autoscaler = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    autoscaler: Name of the autoscaler to return.
    project: Project ID for this request.
    zone: Name of the zone for this request.
  """

  autoscaler = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    autoscaler: A Autoscaler resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: Name of the zone for this request.
  """

  autoscaler = _messages.MessageField('Autoscaler', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: Name of the zone for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    autoscaler: Name of the autoscaler to patch.
    autoscalerResource: A Autoscaler resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: Name of the zone for this request.
  """

  autoscaler = _messages.StringField(1)
  autoscalerResource = _messages.MessageField('Autoscaler', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    autoscaler: Name of the autoscaler to update.
    autoscalerResource: A Autoscaler resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: Name of the zone for this request.
  """

  autoscaler = _messages.StringField(1)
  autoscalerResource = _messages.MessageField('Autoscaler', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    backendBucket: Name of the BackendBucket resource to which the Signed URL
      Key should be added. The name should conform to RFC1035.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    signedUrlKey: A SignedUrlKey resource to be passed as the request body.
  """

  backendBucket = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  signedUrlKey = _messages.MessageField('SignedUrlKey', 4)


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

  Fields:
    backendBucket: Name of the BackendBucket resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendBucket = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    backendBucket: Name of the BackendBucket resource to which the Signed URL
      Key should be added. The name should conform to RFC1035.
    keyName: The name of the Signed URL Key to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendBucket = _messages.StringField(1, required=True)
  keyName = _messages.StringField(2, required=True)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    backendBucket: Name of the BackendBucket resource to return.
    project: Project ID for this request.
  """

  backendBucket = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    backendBucket: A BackendBucket resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendBucket = _messages.MessageField('BackendBucket', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    backendBucket: Name of the BackendBucket resource to patch.
    backendBucketResource: A BackendBucket resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendBucket = _messages.StringField(1, required=True)
  backendBucketResource = _messages.MessageField('BackendBucket', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    backendBucket: Name of the BackendBucket resource to update.
    backendBucketResource: A BackendBucket resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendBucket = _messages.StringField(1, required=True)
  backendBucketResource = _messages.MessageField('BackendBucket', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    backendService: Name of the BackendService resource to which the Signed
      URL Key should be added. The name should conform to RFC1035.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    signedUrlKey: A SignedUrlKey resource to be passed as the request body.
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  signedUrlKey = _messages.MessageField('SignedUrlKey', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Name of the project scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    backendService: Name of the BackendService resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    backendService: Name of the BackendService resource to which the Signed
      URL Key should be added. The name should conform to RFC1035.
    keyName: The name of the Signed URL Key to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  keyName = _messages.StringField(2, required=True)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    backendService: Name of the BackendService resource to which the queried
      instance belongs.
    project: A string attribute.
    resourceGroupReference: A ResourceGroupReference resource to be passed as
      the request body.
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  resourceGroupReference = _messages.MessageField('ResourceGroupReference', 3)


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

  Fields:
    backendService: Name of the BackendService resource to return.
    project: Project ID for this request.
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    backendService: A BackendService resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.MessageField('BackendService', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    backendService: Name of the BackendService resource to patch.
    backendServiceResource: A BackendService resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  backendServiceResource = _messages.MessageField('BackendService', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    backendService: Name of the BackendService resource to update.
    backendServiceResource: A BackendService resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  backendServiceResource = _messages.MessageField('BackendService', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    diskType: Name of the disk type to return.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  diskType = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    disk: Name of the persistent disk to snapshot.
    guestFlush: A boolean attribute.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    snapshot: A Snapshot resource to be passed as the request body.
    zone: The name of the zone for this request.
  """

  disk = _messages.StringField(1, required=True)
  guestFlush = _messages.BooleanField(2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  snapshot = _messages.MessageField('Snapshot', 5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    disk: Name of the persistent disk to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  disk = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    disk: Name of the persistent disk to return.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  disk = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    disk: A Disk resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sourceImage: Optional. Source image to restore onto a disk.
    zone: The name of the zone for this request.
  """

  disk = _messages.MessageField('Disk', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  sourceImage = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    disk: The name of the persistent disk.
    disksResizeRequest: A DisksResizeRequest resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  disk = _messages.StringField(1, required=True)
  disksResizeRequest = _messages.MessageField('DisksResizeRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    resource: Name of the resource for this request.
    zone: The name of the zone for this request.
    zoneSetLabelsRequest: A ZoneSetLabelsRequest resource to be passed as the
      request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  resource = _messages.StringField(3, required=True)
  zone = _messages.StringField(4, required=True)
  zoneSetLabelsRequest = _messages.MessageField('ZoneSetLabelsRequest', 5)


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

  Fields:
    firewall: Name of the firewall rule to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  firewall = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    firewall: Name of the firewall rule to return.
    project: Project ID for this request.
  """

  firewall = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    firewall: A Firewall resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  firewall = _messages.MessageField('Firewall', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    firewall: Name of the firewall rule to patch.
    firewallResource: A Firewall resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  firewall = _messages.StringField(1, required=True)
  firewallResource = _messages.MessageField('Firewall', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    firewall: Name of the firewall rule to update.
    firewallResource: A Firewall resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  firewall = _messages.StringField(1, required=True)
  firewallResource = _messages.MessageField('Firewall', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    forwardingRule: Name of the ForwardingRule resource to delete.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  forwardingRule = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    forwardingRule: Name of the ForwardingRule resource to return.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  forwardingRule = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    forwardingRule: A ForwardingRule resource to be passed as the request
      body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  forwardingRule = _messages.MessageField('ForwardingRule', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    forwardingRule: Name of the ForwardingRule resource in which target is to
      be set.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetReference: A TargetReference resource to be passed as the request
      body.
  """

  forwardingRule = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  targetReference = _messages.MessageField('TargetReference', 5)


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

  Fields:
    address: Name of the address resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  address = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    address: Name of the address resource to return.
    project: Project ID for this request.
  """

  address = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    address: A Address resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  address = _messages.MessageField('Address', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    forwardingRule: Name of the ForwardingRule resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  forwardingRule = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    forwardingRule: Name of the ForwardingRule resource to return.
    project: Project ID for this request.
  """

  forwardingRule = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    forwardingRule: A ForwardingRule resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  forwardingRule = _messages.MessageField('ForwardingRule', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    forwardingRule: Name of the ForwardingRule resource in which target is to
      be set.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetReference: A TargetReference resource to be passed as the request
      body.
  """

  forwardingRule = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetReference = _messages.MessageField('TargetReference', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    operation: Name of the Operations resource to delete.
    project: Project ID for this request.
  """

  operation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


class ComputeGlobalOperationsDeleteResponse(_messages.Message):
  r"""An empty ComputeGlobalOperationsDelete response."""


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

  Fields:
    operation: Name of the Operations resource to return.
    project: Project ID for this request.
  """

  operation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    healthCheck: Name of the HealthCheck resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  healthCheck = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    healthCheck: Name of the HealthCheck resource to return.
    project: Project ID for this request.
  """

  healthCheck = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    healthCheck: A HealthCheck resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  healthCheck = _messages.MessageField('HealthCheck', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    healthCheck: Name of the HealthCheck resource to patch.
    healthCheckResource: A HealthCheck resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  healthCheck = _messages.StringField(1, required=True)
  healthCheckResource = _messages.MessageField('HealthCheck', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    healthCheck: Name of the HealthCheck resource to update.
    healthCheckResource: A HealthCheck resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  healthCheck = _messages.StringField(1, required=True)
  healthCheckResource = _messages.MessageField('HealthCheck', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    httpHealthCheck: Name of the HttpHealthCheck resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpHealthCheck = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    httpHealthCheck: Name of the HttpHealthCheck resource to return.
    project: Project ID for this request.
  """

  httpHealthCheck = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    httpHealthCheck: A HttpHealthCheck resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpHealthCheck = _messages.MessageField('HttpHealthCheck', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    httpHealthCheck: Name of the HttpHealthCheck resource to patch.
    httpHealthCheckResource: A HttpHealthCheck resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpHealthCheck = _messages.StringField(1, required=True)
  httpHealthCheckResource = _messages.MessageField('HttpHealthCheck', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    httpHealthCheck: Name of the HttpHealthCheck resource to update.
    httpHealthCheckResource: A HttpHealthCheck resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpHealthCheck = _messages.StringField(1, required=True)
  httpHealthCheckResource = _messages.MessageField('HttpHealthCheck', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    httpsHealthCheck: Name of the HttpsHealthCheck resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpsHealthCheck = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    httpsHealthCheck: Name of the HttpsHealthCheck resource to return.
    project: Project ID for this request.
  """

  httpsHealthCheck = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    httpsHealthCheck: A HttpsHealthCheck resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpsHealthCheck = _messages.MessageField('HttpsHealthCheck', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    httpsHealthCheck: Name of the HttpsHealthCheck resource to patch.
    httpsHealthCheckResource: A HttpsHealthCheck resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpsHealthCheck = _messages.StringField(1, required=True)
  httpsHealthCheckResource = _messages.MessageField('HttpsHealthCheck', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    httpsHealthCheck: Name of the HttpsHealthCheck resource to update.
    httpsHealthCheckResource: A HttpsHealthCheck resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  httpsHealthCheck = _messages.StringField(1, required=True)
  httpsHealthCheckResource = _messages.MessageField('HttpsHealthCheck', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    image: Name of the image resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  image = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    deprecationStatus: A DeprecationStatus resource to be passed as the
      request body.
    image: Image name.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  deprecationStatus = _messages.MessageField('DeprecationStatus', 1)
  image = _messages.StringField(2, required=True)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    family: Name of the image family to search for.
    project: Project ID for this request.
  """

  family = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    image: Name of the image resource to return.
    project: Project ID for this request.
  """

  image = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    forceCreate: Force image creation if true.
    image: A Image resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  forceCreate = _messages.BooleanField(1)
  image = _messages.MessageField('Image', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    globalSetLabelsRequest: A GlobalSetLabelsRequest resource to be passed as
      the request body.
    project: Project ID for this request.
    resource: Name of the resource for this request.
  """

  globalSetLabelsRequest = _messages.MessageField('GlobalSetLabelsRequest', 1)
  project = _messages.StringField(2, required=True)
  resource = _messages.StringField(3, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    instanceGroupManagersAbandonInstancesRequest: A
      InstanceGroupManagersAbandonInstancesRequest resource to be passed as
      the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  instanceGroupManagersAbandonInstancesRequest = _messages.MessageField('InstanceGroupManagersAbandonInstancesRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    instanceGroupManagersDeleteInstancesRequest: A
      InstanceGroupManagersDeleteInstancesRequest resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  instanceGroupManagersDeleteInstancesRequest = _messages.MessageField('InstanceGroupManagersDeleteInstancesRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    project: Project ID for this request.
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    instanceGroupManager: A InstanceGroupManager resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where you want to create the managed instance
      group.
  """

  instanceGroupManager = _messages.MessageField('InstanceGroupManager', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    filter: A string attribute.
    instanceGroupManager: The name of the managed instance group.
    maxResults: A integer attribute.
    order_by: A string attribute.
    pageToken: A string attribute.
    project: Project ID for this request.
    zone: The name of the zone where the managed instance group is located.
  """

  filter = _messages.StringField(1)
  instanceGroupManager = _messages.StringField(2, required=True)
  maxResults = _messages.IntegerField(3, variant=_messages.Variant.UINT32, default=500)
  order_by = _messages.StringField(4)
  pageToken = _messages.StringField(5)
  project = _messages.StringField(6, required=True)
  zone = _messages.StringField(7, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone where the managed instance group is located.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    instanceGroupManagersRecreateInstancesRequest: A
      InstanceGroupManagersRecreateInstancesRequest resource to be passed as
      the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  instanceGroupManagersRecreateInstancesRequest = _messages.MessageField('InstanceGroupManagersRecreateInstancesRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    size: The number of running instances that the managed instance group
      should maintain at any given time. The group automatically adds or
      removes instances to maintain the number of instances specified by this
      parameter.
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  size = _messages.IntegerField(4, required=True, variant=_messages.Variant.INT32)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    instanceGroupManagersSetInstanceTemplateRequest: A
      InstanceGroupManagersSetInstanceTemplateRequest resource to be passed as
      the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  instanceGroupManagersSetInstanceTemplateRequest = _messages.MessageField('InstanceGroupManagersSetInstanceTemplateRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    instanceGroupManagersSetTargetPoolsRequest: A
      InstanceGroupManagersSetTargetPoolsRequest resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the managed instance group is located.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  instanceGroupManagersSetTargetPoolsRequest = _messages.MessageField('InstanceGroupManagersSetTargetPoolsRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroup: The name of the instance group where you are adding
      instances.
    instanceGroupsAddInstancesRequest: A InstanceGroupsAddInstancesRequest
      resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the instance group is located.
  """

  instanceGroup = _messages.StringField(1, required=True)
  instanceGroupsAddInstancesRequest = _messages.MessageField('InstanceGroupsAddInstancesRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroup: The name of the instance group to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the instance group is located.
  """

  instanceGroup = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    instanceGroup: The name of the instance group.
    project: Project ID for this request.
    zone: The name of the zone where the instance group is located.
  """

  instanceGroup = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    instanceGroup: A InstanceGroup resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where you want to create the instance group.
  """

  instanceGroup = _messages.MessageField('InstanceGroup', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    instanceGroup: The name of the instance group from which you want to
      generate a list of included instances.
    instanceGroupsListInstancesRequest: A InstanceGroupsListInstancesRequest
      resource to be passed as the request body.
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone where the instance group is located.
  """

  filter = _messages.StringField(1)
  instanceGroup = _messages.StringField(2, required=True)
  instanceGroupsListInstancesRequest = _messages.MessageField('InstanceGroupsListInstancesRequest', 3)
  maxResults = _messages.IntegerField(4, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(5)
  pageToken = _messages.StringField(6)
  project = _messages.StringField(7, required=True)
  zone = _messages.StringField(8, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone where the instance group is located.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    instanceGroup: The name of the instance group where the specified
      instances will be removed.
    instanceGroupsRemoveInstancesRequest: A
      InstanceGroupsRemoveInstancesRequest resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the instance group is located.
  """

  instanceGroup = _messages.StringField(1, required=True)
  instanceGroupsRemoveInstancesRequest = _messages.MessageField('InstanceGroupsRemoveInstancesRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceGroup: The name of the instance group where the named ports are
      updated.
    instanceGroupsSetNamedPortsRequest: A InstanceGroupsSetNamedPortsRequest
      resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone where the instance group is located.
  """

  instanceGroup = _messages.StringField(1, required=True)
  instanceGroupsSetNamedPortsRequest = _messages.MessageField('InstanceGroupsSetNamedPortsRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instanceTemplate: The name of the instance template to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceTemplate = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    instanceTemplate: The name of the instance template.
    project: Project ID for this request.
  """

  instanceTemplate = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    instanceTemplate: A InstanceTemplate resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceTemplate = _messages.MessageField('InstanceTemplate', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    accessConfig: A AccessConfig resource to be passed as the request body.
    instance: The instance name for this request.
    networkInterface: The name of the network interface to add to this
      instance.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  accessConfig = _messages.MessageField('AccessConfig', 1)
  instance = _messages.StringField(2, required=True)
  networkInterface = _messages.StringField(3, required=True)
  project = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    attachedDisk: A AttachedDisk resource to be passed as the request body.
    forceAttach: Whether to force attach the disk even if it's currently
      attached to another instance. This is only available for regional disks.
    instance: The instance name for this request.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  attachedDisk = _messages.MessageField('AttachedDisk', 1)
  forceAttach = _messages.BooleanField(2)
  instance = _messages.StringField(3, required=True)
  project = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    accessConfig: The name of the access config to delete.
    instance: The instance name for this request.
    networkInterface: The name of the network interface.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  accessConfig = _messages.StringField(1, required=True)
  instance = _messages.StringField(2, required=True)
  networkInterface = _messages.StringField(3, required=True)
  project = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    instance: Name of the instance resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    deviceName: Disk device name to detach.
    instance: Instance name.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  deviceName = _messages.StringField(1, required=True)
  instance = _messages.StringField(2, required=True)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance resource to return.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    port: Specifies which COM or serial port to retrieve data from.
    project: Project ID for this request.
    start: Returns output starting from a specific byte position. Use this to
      page through output when the output is too large to return in a single
      request. For the initial request, leave this field unspecified. For
      subsequent calls, this field should be set to the next value returned in
      the previous call.
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  port = _messages.IntegerField(2, variant=_messages.Variant.INT32, default=1)
  project = _messages.StringField(3, required=True)
  start = _messages.IntegerField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: A Instance resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sourceInstanceTemplate: Specifies instance template to create the
      instance.  This field is optional. It can be a full or partial URL. For
      example, the following are all valid URLs to an instance template:   - h
      ttps://www.googleapis.com/compute/v1/projects/project/global/global/inst
      anceTemplates/instanceTemplate  -
      projects/project/global/global/instanceTemplates/instanceTemplate  -
      global/instancesTemplates/instanceTemplate
    zone: The name of the zone for this request.
  """

  instance = _messages.MessageField('Instance', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  sourceInstanceTemplate = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    instance: Name of the target instance scoping this request, or '-' if the
      request should span over all instances in the container.
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  filter = _messages.StringField(1)
  instance = _messages.StringField(2, required=True)
  maxResults = _messages.IntegerField(3, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(4)
  pageToken = _messages.StringField(5)
  project = _messages.StringField(6, required=True)
  zone = _messages.StringField(7, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    deletionProtection: Whether the resource should be protected against
      deletion.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    resource: Name of the resource for this request.
    zone: The name of the zone for this request.
  """

  deletionProtection = _messages.BooleanField(1, default=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  resource = _messages.StringField(4, required=True)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    autoDelete: Whether to auto-delete the disk when the instance is deleted.
    deviceName: The device name of the disk to modify.
    instance: The instance name.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  autoDelete = _messages.BooleanField(1, required=True)
  deviceName = _messages.StringField(2, required=True)
  instance = _messages.StringField(3, required=True)
  project = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    instancesSetLabelsRequest: A InstancesSetLabelsRequest resource to be
      passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  instancesSetLabelsRequest = _messages.MessageField('InstancesSetLabelsRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    instancesSetMachineResourcesRequest: A InstancesSetMachineResourcesRequest
      resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  instancesSetMachineResourcesRequest = _messages.MessageField('InstancesSetMachineResourcesRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    instancesSetMachineTypeRequest: A InstancesSetMachineTypeRequest resource
      to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  instancesSetMachineTypeRequest = _messages.MessageField('InstancesSetMachineTypeRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    metadata: A Metadata resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  metadata = _messages.MessageField('Metadata', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    instancesSetMinCpuPlatformRequest: A InstancesSetMinCpuPlatformRequest
      resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  instancesSetMinCpuPlatformRequest = _messages.MessageField('InstancesSetMinCpuPlatformRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Instance name.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    scheduling: A Scheduling resource to be passed as the request body.
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  scheduling = _messages.MessageField('Scheduling', 4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance resource to start.
    instancesSetServiceAccountRequest: A InstancesSetServiceAccountRequest
      resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  instancesSetServiceAccountRequest = _messages.MessageField('InstancesSetServiceAccountRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance scoping this request.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    tags: A Tags resource to be passed as the request body.
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  tags = _messages.MessageField('Tags', 4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance resource to start.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    instance: Name of the instance resource to start.
    instancesStartWithEncryptionKeyRequest: A
      InstancesStartWithEncryptionKeyRequest resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  instancesStartWithEncryptionKeyRequest = _messages.MessageField('InstancesStartWithEncryptionKeyRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  zone = _messages.StringField(5, required=True)


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

  Fields:
    instance: Name of the instance resource to stop.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    accessConfig: A AccessConfig resource to be passed as the request body.
    instance: The instance name for this request.
    networkInterface: The name of the network interface where the access
      config is attached.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  accessConfig = _messages.MessageField('AccessConfig', 1)
  instance = _messages.StringField(2, required=True)
  networkInterface = _messages.StringField(3, required=True)
  project = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    instance: The instance name for this request.
    networkInterface: The name of the network interface to update.
    networkInterfaceResource: A NetworkInterface resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    zone: The name of the zone for this request.
  """

  instance = _messages.StringField(1, required=True)
  networkInterface = _messages.StringField(2, required=True)
  networkInterfaceResource = _messages.MessageField('NetworkInterface', 3)
  project = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    interconnectAttachment: Name of the interconnect attachment to delete.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  interconnectAttachment = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    interconnectAttachment: Name of the interconnect attachment to return.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  interconnectAttachment = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    interconnectAttachment: A InterconnectAttachment resource to be passed as
      the request body.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  interconnectAttachment = _messages.MessageField('InterconnectAttachment', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    interconnectAttachment: Name of the interconnect attachment to patch.
    interconnectAttachmentResource: A InterconnectAttachment resource to be
      passed as the request body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  interconnectAttachment = _messages.StringField(1, required=True)
  interconnectAttachmentResource = _messages.MessageField('InterconnectAttachment', 2)
  project = _messages.StringField(3, required=True)
  region = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)


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

  Fields:
    interconnectLocation: Name of the interconnect location to return.
    project: Project ID for this request.
  """

  interconnectLocation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    interconnect: Name of the interconnect to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  interconnect = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    interconnect: Name of the interconnect to return.
    project: Project ID for this request.
  """

  interconnect = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    interconnect: A Interconnect resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  interconnect = _messages.MessageField('Interconnect', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    interconnect: Name of the interconnect to update.
    interconnectResource: A Interconnect resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  interconnect = _messages.StringField(1, required=True)
  interconnectResource = _messages.MessageField('Interconnect', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    licenseCode: Number corresponding to the License code resource to return.
    project: Project ID for this request.
  """

  licenseCode = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    resource: Name of the resource for this request.
    testPermissionsRequest: A TestPermissionsRequest resource to be passed as
      the request body.
  """

  project = _messages.StringField(1, required=True)
  resource = _messages.StringField(2, required=True)
  testPermissionsRequest = _messages.MessageField('TestPermissionsRequest', 3)


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

  Fields:
    license: Name of the license resource to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  license = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    license: Name of the License resource to return.
    project: Project ID for this request.
  """

  license = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    license: A License resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  license = _messages.MessageField('License', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    resource: Name of the resource for this request.
    testPermissionsRequest: A TestPermissionsRequest resource to be passed as
      the request body.
  """

  project = _messages.StringField(1, required=True)
  resource = _messages.StringField(2, required=True)
  testPermissionsRequest = _messages.MessageField('TestPermissionsRequest', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    machineType: Name of the machine type to return.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  machineType = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: The name of the zone for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    network: Name of the network resource to add peering to.
    networksAddPeeringRequest: A NetworksAddPeeringRequest resource to be
      passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  network = _messages.StringField(1, required=True)
  networksAddPeeringRequest = _messages.MessageField('NetworksAddPeeringRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    network: Name of the network to delete.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  network = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    network: Name of the network to return.
    project: Project ID for this request.
  """

  network = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)


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

  Fields:
    network: A Network resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  network = _messages.MessageField('Network', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    network: Name of the network to update.
    networkResource: A Network resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  network = _messages.StringField(1, required=True)
  networkResource = _messages.MessageField('Network', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    network: Name of the network resource to remove peering from.
    networksRemovePeeringRequest: A NetworksRemovePeeringRequest resource to
      be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  network = _messages.StringField(1, required=True)
  networksRemovePeeringRequest = _messages.MessageField('NetworksRemovePeeringRequest', 2)
  project = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    network: Name of the network to be updated.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  network = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)


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

  Fields:
    project: Project ID for this request.
    projectsDisableXpnResourceRequest: A ProjectsDisableXpnResourceRequest
      resource to be passed as the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  project = _messages.StringField(1, required=True)
  projectsDisableXpnResourceRequest = _messages.MessageField('ProjectsDisableXpnResourceRequest', 2)
  requestId = _messages.StringField(3)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)


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

  Fields:
    project: Project ID for this request.
    projectsEnableXpnResourceRequest: A ProjectsEnableXpnResourceRequest
      resource to be passed as the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  project = _messages.StringField(1, required=True)
  projectsEnableXpnResourceRequest = _messages.MessageField('ProjectsEnableXpnResourceRequest', 2)
  requestId = _messages.StringField(3)


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

  Fields:
    project: Project ID for this request.
  """

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


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

  Fields:
    project: Project ID for this request.
  """

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


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

  Fields:
    filter: A string attribute.
    maxResults: A integer attribute.
    order_by: A string attribute.
    pageToken: A string attribute.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  order_by = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    filter: A string attribute.
    maxResults: A integer attribute.
    order_by: A string attribute.
    pageToken: A string attribute.
    project: Project ID for this request.
    projectsListXpnHostsRequest: A ProjectsListXpnHostsRequest resource to be
      passed as the request body.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  order_by = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  projectsListXpnHostsRequest = _messages.MessageField('ProjectsListXpnHostsRequest', 6)


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

  Fields:
    diskMoveRequest: A DiskMoveRequest resource to be passed as the request
      body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  diskMoveRequest = _messages.MessageField('DiskMoveRequest', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    instanceMoveRequest: A InstanceMoveRequest resource to be passed as the
      request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceMoveRequest = _messages.MessageField('InstanceMoveRequest', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    metadata: A Metadata resource to be passed as the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  metadata = _messages.MessageField('Metadata', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    usageExportLocation: A UsageExportLocation resource to be passed as the
      request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  usageExportLocation = _messages.MessageField('UsageExportLocation', 3)


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

  Fields:
    autoscaler: Name of the autoscaler to delete.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  autoscaler = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    autoscaler: Name of the autoscaler to return.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  autoscaler = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    autoscaler: A Autoscaler resource to be passed as the request body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  autoscaler = _messages.MessageField('Autoscaler', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    autoscaler: Name of the autoscaler to patch.
    autoscalerResource: A Autoscaler resource to be passed as the request
      body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  autoscaler = _messages.StringField(1)
  autoscalerResource = _messages.MessageField('Autoscaler', 2)
  project = _messages.StringField(3, required=True)
  region = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)


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

  Fields:
    autoscaler: Name of the autoscaler to update.
    autoscalerResource: A Autoscaler resource to be passed as the request
      body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  autoscaler = _messages.StringField(1)
  autoscalerResource = _messages.MessageField('Autoscaler', 2)
  project = _messages.StringField(3, required=True)
  region = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)


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

  Fields:
    backendService: Name of the BackendService resource to delete.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    backendService: Name of the BackendService resource for which to get
      health.
    project: A string attribute.
    region: Name of the region scoping this request.
    resourceGroupReference: A ResourceGroupReference resource to be passed as
      the request body.
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  resourceGroupReference = _messages.MessageField('ResourceGroupReference', 4)


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

  Fields:
    backendService: Name of the BackendService resource to return.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  backendService = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    backendService: A BackendService resource to be passed as the request
      body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.MessageField('BackendService', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    backendService: Name of the BackendService resource to patch.
    backendServiceResource: A BackendService resource to be passed as the
      request body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  backendServiceResource = _messages.MessageField('BackendService', 2)
  project = _messages.StringField(3, required=True)
  region = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)


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

  Fields:
    backendService: Name of the BackendService resource to update.
    backendServiceResource: A BackendService resource to be passed as the
      request body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  backendService = _messages.StringField(1, required=True)
  backendServiceResource = _messages.MessageField('BackendService', 2)
  project = _messages.StringField(3, required=True)
  region = _messages.StringField(4, required=True)
  requestId = _messages.StringField(5)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    commitment: Name of the commitment to return.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  commitment = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    commitment: A Commitment resource to be passed as the request body.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  commitment = _messages.MessageField('Commitment', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    diskType: Name of the disk type to return.
    project: Project ID for this request.
    region: The name of the region for this request.
  """

  diskType = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: The name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    disk: Name of the regional persistent disk to snapshot.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    snapshot: A Snapshot resource to be passed as the request body.
  """

  disk = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  snapshot = _messages.MessageField('Snapshot', 5)


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

  Fields:
    disk: Name of the regional persistent disk to delete.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  disk = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    disk: Name of the regional persistent disk to return.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  disk = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    disk: A Disk resource to be passed as the request body.
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sourceImage: Optional. Source image to restore onto a disk.
  """

  disk = _messages.MessageField('Disk', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  sourceImage = _messages.StringField(5)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    disk: Name of the regional persistent disk.
    project: The project ID for this request.
    region: Name of the region for this request.
    regionDisksResizeRequest: A RegionDisksResizeRequest resource to be passed
      as the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  disk = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionDisksResizeRequest = _messages.MessageField('RegionDisksResizeRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    project: Project ID for this request.
    region: The region for this request.
    regionSetLabelsRequest: A RegionSetLabelsRequest resource to be passed as
      the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    resource: Name of the resource for this request.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  regionSetLabelsRequest = _messages.MessageField('RegionSetLabelsRequest', 3)
  requestId = _messages.StringField(4)
  resource = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    region: The name of the region for this request.
    resource: Name of the resource for this request.
    testPermissionsRequest: A TestPermissionsRequest resource to be passed as
      the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  resource = _messages.StringField(3, required=True)
  testPermissionsRequest = _messages.MessageField('TestPermissionsRequest', 4)


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

  Fields:
    instanceGroupManager: Name of the managed instance group.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupManagersAbandonInstancesRequest: A
      RegionInstanceGroupManagersAbandonInstancesRequest resource to be passed
      as the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionInstanceGroupManagersAbandonInstancesRequest = _messages.MessageField('RegionInstanceGroupManagersAbandonInstancesRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    instanceGroupManager: Name of the managed instance group.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupManagersDeleteInstancesRequest: A
      RegionInstanceGroupManagersDeleteInstancesRequest resource to be passed
      as the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionInstanceGroupManagersDeleteInstancesRequest = _messages.MessageField('RegionInstanceGroupManagersDeleteInstancesRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    instanceGroupManager: Name of the managed instance group to delete.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    instanceGroupManager: Name of the managed instance group to return.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    instanceGroupManager: A InstanceGroupManager resource to be passed as the
      request body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.MessageField('InstanceGroupManager', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)


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

  Fields:
    filter: A string attribute.
    instanceGroupManager: The name of the managed instance group.
    maxResults: A integer attribute.
    order_by: A string attribute.
    pageToken: A string attribute.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  instanceGroupManager = _messages.StringField(2, required=True)
  maxResults = _messages.IntegerField(3, variant=_messages.Variant.UINT32, default=500)
  order_by = _messages.StringField(4)
  pageToken = _messages.StringField(5)
  project = _messages.StringField(6, required=True)
  region = _messages.StringField(7, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    instanceGroupManager: Name of the managed instance group.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupManagersRecreateRequest: A
      RegionInstanceGroupManagersRecreateRequest resource to be passed as the
      request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionInstanceGroupManagersRecreateRequest = _messages.MessageField('RegionInstanceGroupManagersRecreateRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    instanceGroupManager: Name of the managed instance group.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    size: Number of instances that should exist in this instance group
      manager.
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  size = _messages.IntegerField(5, required=True, variant=_messages.Variant.INT32)


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

  Fields:
    instanceGroupManager: The name of the managed instance group.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupManagersSetTemplateRequest: A
      RegionInstanceGroupManagersSetTemplateRequest resource to be passed as
      the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionInstanceGroupManagersSetTemplateRequest = _messages.MessageField('RegionInstanceGroupManagersSetTemplateRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    instanceGroupManager: Name of the managed instance group.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupManagersSetTargetPoolsRequest: A
      RegionInstanceGroupManagersSetTargetPoolsRequest resource to be passed
      as the request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroupManager = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionInstanceGroupManagersSetTargetPoolsRequest = _messages.MessageField('RegionInstanceGroupManagersSetTargetPoolsRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    instanceGroup: Name of the instance group resource to return.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  instanceGroup = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    instanceGroup: Name of the regional instance group for which we want to
      list the instances.
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupsListInstancesRequest: A
      RegionInstanceGroupsListInstancesRequest resource to be passed as the
      request body.
  """

  filter = _messages.StringField(1)
  instanceGroup = _messages.StringField(2, required=True)
  maxResults = _messages.IntegerField(3, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(4)
  pageToken = _messages.StringField(5)
  project = _messages.StringField(6, required=True)
  region = _messages.StringField(7, required=True)
  regionInstanceGroupsListInstancesRequest = _messages.MessageField('RegionInstanceGroupsListInstancesRequest', 8)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    instanceGroup: The name of the regional instance group where the named
      ports are updated.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    regionInstanceGroupsSetNamedPortsRequest: A
      RegionInstanceGroupsSetNamedPortsRequest resource to be passed as the
      request body.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
  """

  instanceGroup = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  regionInstanceGroupsSetNamedPortsRequest = _messages.MessageField('RegionInstanceGroupsSetNamedPortsRequest', 4)
  requestId = _messages.StringField(5)


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

  Fields:
    operation: Name of the Operations resource to delete.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  operation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


class ComputeRegionOperationsDeleteResponse(_messages.Message):
  r"""An empty ComputeRegionOperationsDelete response."""


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

  Fields:
    operation: Name of the Operations resource to return.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  operation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region resource to return.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    router: Name of the Router resource to delete.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  router = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    router: Name of the Router resource to return.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  router = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    router: Name of the Router resource to query.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  router = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    router: A Router resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  router = _messages.MessageField('Router', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    router: Name of the Router resource to patch.
    routerResource: A Router resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  router = _messages.StringField(4, required=True)
  routerResource = _messages.MessageField('Router', 5)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    router: Name of the Router resource to query.
    routerResource: A Router resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  router = _messages.StringField(3, required=True)
  routerResource = _messages.MessageField('Router', 4)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    router: Name of the Router resource to update.
    routerResource: A Router resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  router = _messages.StringField(4, required=True)
  routerResource = _messages.MessageField('Router', 5)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    route: Name of the Route resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  route = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    route: Name of the Route resource to return.
  """

  project = _messages.StringField(1, required=True)
  route = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    route: A Route resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  route = _messages.MessageField('Route', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    snapshot: Name of the Snapshot resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  snapshot = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    snapshot: Name of the Snapshot resource to return.
  """

  project = _messages.StringField(1, required=True)
  snapshot = _messages.StringField(2, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    globalSetLabelsRequest: A GlobalSetLabelsRequest resource to be passed as
      the request body.
    project: Project ID for this request.
    resource: Name of the resource for this request.
  """

  globalSetLabelsRequest = _messages.MessageField('GlobalSetLabelsRequest', 1)
  project = _messages.StringField(2, required=True)
  resource = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslCertificate: Name of the SslCertificate resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslCertificate = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    sslCertificate: Name of the SslCertificate resource to return.
  """

  project = _messages.StringField(1, required=True)
  sslCertificate = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslCertificate: A SslCertificate resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslCertificate = _messages.MessageField('SslCertificate', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslPolicy: Name of the SSL policy to delete. The name must be 1-63
      characters long, and comply with RFC1035.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslPolicy = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    sslPolicy: Name of the SSL policy to update. The name must be 1-63
      characters long, and comply with RFC1035.
  """

  project = _messages.StringField(1, required=True)
  sslPolicy = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslPolicy: A SslPolicy resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslPolicy = _messages.MessageField('SslPolicy', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslPolicy: Name of the SSL policy to update. The name must be 1-63
      characters long, and comply with RFC1035.
    sslPolicyResource: A SslPolicy resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslPolicy = _messages.StringField(3, required=True)
  sslPolicyResource = _messages.MessageField('SslPolicy', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    subnetwork: Name of the Subnetwork resource to delete.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  subnetwork = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    subnetwork: Name of the Subnetwork resource to update.
    subnetworksExpandIpCidrRangeRequest: A SubnetworksExpandIpCidrRangeRequest
      resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  subnetwork = _messages.StringField(4, required=True)
  subnetworksExpandIpCidrRangeRequest = _messages.MessageField('SubnetworksExpandIpCidrRangeRequest', 5)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    subnetwork: Name of the Subnetwork resource to return.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  subnetwork = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    subnetwork: A Subnetwork resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  subnetwork = _messages.MessageField('Subnetwork', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    subnetwork: Name of the Subnetwork resource to patch.
    subnetworkResource: A Subnetwork resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  subnetwork = _messages.StringField(4, required=True)
  subnetworkResource = _messages.MessageField('Subnetwork', 5)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    subnetwork: Name of the Subnetwork resource.
    subnetworksSetPrivateIpGoogleAccessRequest: A
      SubnetworksSetPrivateIpGoogleAccessRequest resource to be passed as the
      request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  subnetwork = _messages.StringField(4, required=True)
  subnetworksSetPrivateIpGoogleAccessRequest = _messages.MessageField('SubnetworksSetPrivateIpGoogleAccessRequest', 5)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpProxy: Name of the TargetHttpProxy resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpProxy = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    targetHttpProxy: Name of the TargetHttpProxy resource to return.
  """

  project = _messages.StringField(1, required=True)
  targetHttpProxy = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpProxy: A TargetHttpProxy resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpProxy = _messages.MessageField('TargetHttpProxy', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
    urlMapReference: A UrlMapReference resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpProxy = _messages.StringField(3, required=True)
  urlMapReference = _messages.MessageField('UrlMapReference', 4)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpsProxy = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
  """

  project = _messages.StringField(1, required=True)
  targetHttpsProxy = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpsProxy: A TargetHttpsProxy resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpsProxy = _messages.MessageField('TargetHttpsProxy', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpsProxiesSetQuicOverrideRequest: A
      TargetHttpsProxiesSetQuicOverrideRequest resource to be passed as the
      request body.
    targetHttpsProxy: Name of the TargetHttpsProxy resource to set the QUIC
      override policy for. The name should conform to RFC1035.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpsProxiesSetQuicOverrideRequest = _messages.MessageField('TargetHttpsProxiesSetQuicOverrideRequest', 3)
  targetHttpsProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpsProxiesSetSslCertificatesRequest: A
      TargetHttpsProxiesSetSslCertificatesRequest resource to be passed as the
      request body.
    targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
      SslCertificates resource for.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpsProxiesSetSslCertificatesRequest = _messages.MessageField('TargetHttpsProxiesSetSslCertificatesRequest', 3)
  targetHttpsProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslPolicyReference: A SslPolicyReference resource to be passed as the
      request body.
    targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL policy
      is to be set. The name must be 1-63 characters long, and comply with
      RFC1035.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslPolicyReference = _messages.MessageField('SslPolicyReference', 3)
  targetHttpsProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL map is
      to be set.
    urlMapReference: A UrlMapReference resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetHttpsProxy = _messages.StringField(3, required=True)
  urlMapReference = _messages.MessageField('UrlMapReference', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetInstance: Name of the TargetInstance resource to delete.
    zone: Name of the zone scoping this request.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetInstance = _messages.StringField(3, required=True)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    targetInstance: Name of the TargetInstance resource to return.
    zone: Name of the zone scoping this request.
  """

  project = _messages.StringField(1, required=True)
  targetInstance = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetInstance: A TargetInstance resource to be passed as the request
      body.
    zone: Name of the zone scoping this request.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetInstance = _messages.MessageField('TargetInstance', 3)
  zone = _messages.StringField(4, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: Name of the zone scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: Name of the target pool to add a health check to.
    targetPoolsAddHealthCheckRequest: A TargetPoolsAddHealthCheckRequest
      resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetPool = _messages.StringField(4, required=True)
  targetPoolsAddHealthCheckRequest = _messages.MessageField('TargetPoolsAddHealthCheckRequest', 5)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: Name of the TargetPool resource to add instances to.
    targetPoolsAddInstanceRequest: A TargetPoolsAddInstanceRequest resource to
      be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetPool = _messages.StringField(4, required=True)
  targetPoolsAddInstanceRequest = _messages.MessageField('TargetPoolsAddInstanceRequest', 5)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: Name of the TargetPool resource to delete.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetPool = _messages.StringField(4, required=True)


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

  Fields:
    instanceReference: A InstanceReference resource to be passed as the
      request body.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    targetPool: Name of the TargetPool resource to which the queried instance
      belongs.
  """

  instanceReference = _messages.MessageField('InstanceReference', 1)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  targetPool = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    targetPool: Name of the TargetPool resource to return.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  targetPool = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: A TargetPool resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetPool = _messages.MessageField('TargetPool', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region scoping this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: Name of the target pool to remove health checks from.
    targetPoolsRemoveHealthCheckRequest: A TargetPoolsRemoveHealthCheckRequest
      resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetPool = _messages.StringField(4, required=True)
  targetPoolsRemoveHealthCheckRequest = _messages.MessageField('TargetPoolsRemoveHealthCheckRequest', 5)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: Name of the TargetPool resource to remove instances from.
    targetPoolsRemoveInstanceRequest: A TargetPoolsRemoveInstanceRequest
      resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetPool = _messages.StringField(4, required=True)
  targetPoolsRemoveInstanceRequest = _messages.MessageField('TargetPoolsRemoveInstanceRequest', 5)


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

  Fields:
    failoverRatio: New failoverRatio value for the target pool.
    project: Project ID for this request.
    region: Name of the region scoping this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetPool: Name of the TargetPool resource to set a backup pool for.
    targetReference: A TargetReference resource to be passed as the request
      body.
  """

  failoverRatio = _messages.FloatField(1, variant=_messages.Variant.FLOAT)
  project = _messages.StringField(2, required=True)
  region = _messages.StringField(3, required=True)
  requestId = _messages.StringField(4)
  targetPool = _messages.StringField(5, required=True)
  targetReference = _messages.MessageField('TargetReference', 6)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetSslProxy: Name of the TargetSslProxy resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetSslProxy = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    targetSslProxy: Name of the TargetSslProxy resource to return.
  """

  project = _messages.StringField(1, required=True)
  targetSslProxy = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetSslProxy: A TargetSslProxy resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetSslProxy = _messages.MessageField('TargetSslProxy', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetSslProxiesSetBackendServiceRequest: A
      TargetSslProxiesSetBackendServiceRequest resource to be passed as the
      request body.
    targetSslProxy: Name of the TargetSslProxy resource whose BackendService
      resource is to be set.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetSslProxiesSetBackendServiceRequest = _messages.MessageField('TargetSslProxiesSetBackendServiceRequest', 3)
  targetSslProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetSslProxiesSetProxyHeaderRequest: A
      TargetSslProxiesSetProxyHeaderRequest resource to be passed as the
      request body.
    targetSslProxy: Name of the TargetSslProxy resource whose ProxyHeader is
      to be set.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetSslProxiesSetProxyHeaderRequest = _messages.MessageField('TargetSslProxiesSetProxyHeaderRequest', 3)
  targetSslProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetSslProxiesSetSslCertificatesRequest: A
      TargetSslProxiesSetSslCertificatesRequest resource to be passed as the
      request body.
    targetSslProxy: Name of the TargetSslProxy resource whose SslCertificate
      resource is to be set.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetSslProxiesSetSslCertificatesRequest = _messages.MessageField('TargetSslProxiesSetSslCertificatesRequest', 3)
  targetSslProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    sslPolicyReference: A SslPolicyReference resource to be passed as the
      request body.
    targetSslProxy: Name of the TargetSslProxy resource whose SSL policy is to
      be set. The name must be 1-63 characters long, and comply with RFC1035.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  sslPolicyReference = _messages.MessageField('SslPolicyReference', 3)
  targetSslProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetTcpProxy: Name of the TargetTcpProxy resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetTcpProxy = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    targetTcpProxy: Name of the TargetTcpProxy resource to return.
  """

  project = _messages.StringField(1, required=True)
  targetTcpProxy = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetTcpProxy: A TargetTcpProxy resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetTcpProxy = _messages.MessageField('TargetTcpProxy', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetTcpProxiesSetBackendServiceRequest: A
      TargetTcpProxiesSetBackendServiceRequest resource to be passed as the
      request body.
    targetTcpProxy: Name of the TargetTcpProxy resource whose BackendService
      resource is to be set.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetTcpProxiesSetBackendServiceRequest = _messages.MessageField('TargetTcpProxiesSetBackendServiceRequest', 3)
  targetTcpProxy = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetTcpProxiesSetProxyHeaderRequest: A
      TargetTcpProxiesSetProxyHeaderRequest resource to be passed as the
      request body.
    targetTcpProxy: Name of the TargetTcpProxy resource whose ProxyHeader is
      to be set.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  targetTcpProxiesSetProxyHeaderRequest = _messages.MessageField('TargetTcpProxiesSetProxyHeaderRequest', 3)
  targetTcpProxy = _messages.StringField(4, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetVpnGateway: Name of the target VPN gateway to delete.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetVpnGateway = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    targetVpnGateway: Name of the target VPN gateway to return.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  targetVpnGateway = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    targetVpnGateway: A TargetVpnGateway resource to be passed as the request
      body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  targetVpnGateway = _messages.MessageField('TargetVpnGateway', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    urlMap: Name of the UrlMap resource to delete.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  urlMap = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    urlMap: Name of the UrlMap resource to return.
  """

  project = _messages.StringField(1, required=True)
  urlMap = _messages.StringField(2, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    urlMap: A UrlMap resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  urlMap = _messages.MessageField('UrlMap', 3)


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

  Fields:
    cacheInvalidationRule: A CacheInvalidationRule resource to be passed as
      the request body.
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    urlMap: Name of the UrlMap scoping this request.
  """

  cacheInvalidationRule = _messages.MessageField('CacheInvalidationRule', 1)
  project = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  urlMap = _messages.StringField(4, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    urlMap: Name of the UrlMap resource to patch.
    urlMapResource: A UrlMap resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  urlMap = _messages.StringField(3, required=True)
  urlMapResource = _messages.MessageField('UrlMap', 4)


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

  Fields:
    project: Project ID for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    urlMap: Name of the UrlMap resource to update.
    urlMapResource: A UrlMap resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  requestId = _messages.StringField(2)
  urlMap = _messages.StringField(3, required=True)
  urlMapResource = _messages.MessageField('UrlMap', 4)


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

  Fields:
    project: Project ID for this request.
    urlMap: Name of the UrlMap resource to be validated as.
    urlMapsValidateRequest: A UrlMapsValidateRequest resource to be passed as
      the request body.
  """

  project = _messages.StringField(1, required=True)
  urlMap = _messages.StringField(2, required=True)
  urlMapsValidateRequest = _messages.MessageField('UrlMapsValidateRequest', 3)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    vpnTunnel: Name of the VpnTunnel resource to delete.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  vpnTunnel = _messages.StringField(4, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    vpnTunnel: Name of the VpnTunnel resource to return.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  vpnTunnel = _messages.StringField(3, required=True)


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

  Fields:
    project: Project ID for this request.
    region: Name of the region for this request.
    requestId: An optional request ID to identify requests. Specify a unique
      request ID so that if you must retry your request, the server will know
      to ignore the request if it has already been completed.  For example,
      consider a situation where you make an initial request and the request
      times out. If you make the request again with the same request ID, the
      server can check if original operation with the same request ID was
      received, and if so, will ignore the second request. This prevents
      clients from accidentally creating duplicate commitments.  The request
      ID must be a valid UUID with the exception that zero UUID is not
      supported (00000000-0000-0000-0000-000000000000).
    vpnTunnel: A VpnTunnel resource to be passed as the request body.
  """

  project = _messages.StringField(1, required=True)
  region = _messages.StringField(2, required=True)
  requestId = _messages.StringField(3)
  vpnTunnel = _messages.MessageField('VpnTunnel', 4)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    region: Name of the region for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  region = _messages.StringField(6, required=True)


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

  Fields:
    operation: Name of the Operations resource to delete.
    project: Project ID for this request.
    zone: Name of the zone for this request.
  """

  operation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


class ComputeZoneOperationsDeleteResponse(_messages.Message):
  r"""An empty ComputeZoneOperationsDelete response."""


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

  Fields:
    operation: Name of the Operations resource to return.
    project: Project ID for this request.
    zone: Name of the zone for this request.
  """

  operation = _messages.StringField(1, required=True)
  project = _messages.StringField(2, required=True)
  zone = _messages.StringField(3, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
    zone: Name of the zone for request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)
  zone = _messages.StringField(6, required=True)


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

  Fields:
    project: Project ID for this request.
    zone: Name of the zone resource to return.
  """

  project = _messages.StringField(1, required=True)
  zone = _messages.StringField(2, required=True)


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

  Fields:
    filter: A filter expression that filters resources listed in the response.
      The expression must specify the field name, a comparison operator, and
      the value that you want to use for filtering. The value must be a
      string, a number, or a boolean. The comparison operator must be either
      =, !=, >, or <.  For example, if you are filtering Compute Engine
      instances, you can exclude instances named example-instance by
      specifying name != example-instance.  You can also filter nested fields.
      For example, you could specify scheduling.automaticRestart = false to
      include instances only if they are not scheduled for automatic restarts.
      You can use filtering on nested fields to filter based on resource
      labels.  To filter on multiple expressions, provide each separate
      expression within parentheses. For example, (scheduling.automaticRestart
      = true) (cpuPlatform = "Intel Skylake"). By default, each expression is
      an AND expression. However, you can include AND and OR expressions
      explicitly. For example, (cpuPlatform = "Intel Skylake") OR (cpuPlatform
      = "Intel Broadwell") AND (scheduling.automaticRestart = true).
    maxResults: The maximum number of results per page that should be
      returned. If the number of available results is larger than maxResults,
      Compute Engine returns a nextPageToken that can be used to get the next
      page of results in subsequent list requests. Acceptable values are 0 to
      500, inclusive. (Default: 500)
    orderBy: Sorts list results by a certain order. By default, results are
      returned in alphanumerical order based on the resource name.  You can
      also sort results in descending order based on the creation timestamp
      using orderBy="creationTimestamp desc". This sorts results based on the
      creationTimestamp field in reverse chronological order (newest result
      first). Use this to sort resources like operations so that the newest
      operation is returned first.  Currently, only sorting by name or
      creationTimestamp desc is supported.
    pageToken: Specifies a page token to use. Set pageToken to the
      nextPageToken returned by a previous list request to get the next page
      of results.
    project: Project ID for this request.
  """

  filter = _messages.StringField(1)
  maxResults = _messages.IntegerField(2, variant=_messages.Variant.UINT32, default=500)
  orderBy = _messages.StringField(3)
  pageToken = _messages.StringField(4)
  project = _messages.StringField(5, required=True)


class ConnectionDraining(_messages.Message):
  r"""Message containing connection draining configuration.

  Fields:
    drainingTimeoutSec: Time for which instance will be drained (not accept
      new connections, but still work to finish started).
  """

  drainingTimeoutSec = _messages.IntegerField(1, variant=_messages.Variant.INT32)


class CustomerEncryptionKey(_messages.Message):
  r"""Represents a customer-supplied encryption key

  Fields:
    rawKey: Specifies a 256-bit customer-supplied encryption key, encoded in
      RFC 4648 base64 to either encrypt or decrypt this resource.
    sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
      customer-supplied encryption key that protects this resource.
  """

  rawKey = _messages.StringField(1)
  sha256 = _messages.StringField(2)


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

  Fields:
    diskEncryptionKey: Decrypts data associated with the disk with a customer-
      supplied encryption key.
    source: Specifies a valid partial or full URL to an existing Persistent
      Disk resource. This field is only applicable for persistent disks.
  """

  diskEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 1)
  source = _messages.StringField(2)


class DeprecationStatus(_messages.Message):
  r"""Deprecation status for a public resource.

  Enums:
    StateValueValuesEnum: The deprecation state of this resource. This can be
      DEPRECATED, OBSOLETE, or DELETED. Operations which create a new resource
      using a DEPRECATED resource will return successfully, but with a warning
      indicating the deprecated resource and recommending its replacement.
      Operations which use OBSOLETE or DELETED resources will be rejected and
      result in an error.

  Fields:
    deleted: An optional RFC3339 timestamp on or after which the state of this
      resource is intended to change to DELETED. This is only informational
      and the status will not change unless the client explicitly changes it.
    deprecated: An optional RFC3339 timestamp on or after which the state of
      this resource is intended to change to DEPRECATED. This is only
      informational and the status will not change unless the client
      explicitly changes it.
    obsolete: An optional RFC3339 timestamp on or after which the state of
      this resource is intended to change to OBSOLETE. This is only
      informational and the status will not change unless the client
      explicitly changes it.
    replacement: The URL of the suggested replacement for a deprecated
      resource. The suggested replacement resource must be the same kind of
      resource as the deprecated resource.
    state: The deprecation state of this resource. This can be DEPRECATED,
      OBSOLETE, or DELETED. Operations which create a new resource using a
      DEPRECATED resource will return successfully, but with a warning
      indicating the deprecated resource and recommending its replacement.
      Operations which use OBSOLETE or DELETED resources will be rejected and
      result in an error.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""The deprecation state of this resource. This can be DEPRECATED,
    OBSOLETE, or DELETED. Operations which create a new resource using a
    DEPRECATED resource will return successfully, but with a warning
    indicating the deprecated resource and recommending its replacement.
    Operations which use OBSOLETE or DELETED resources will be rejected and
    result in an error.

    Values:
      DELETED: <no description>
      DEPRECATED: <no description>
      OBSOLETE: <no description>
    """
    DELETED = 0
    DEPRECATED = 1
    OBSOLETE = 2

  deleted = _messages.StringField(1)
  deprecated = _messages.StringField(2)
  obsolete = _messages.StringField(3)
  replacement = _messages.StringField(4)
  state = _messages.EnumField('StateValueValuesEnum', 5)


class Disk(_messages.Message):
  r"""A Disk resource. (== resource_for beta.disks ==) (== resource_for
  v1.disks ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of disk creation.

  Messages:
    LabelsValue: Labels to apply to this disk. These can be later modified by
      the setLabels method.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    diskEncryptionKey: Encrypts the disk using a customer-supplied encryption
      key.  After you encrypt a disk with a customer-supplied key, you must
      provide the same key if you use the disk later (e.g. to create a disk
      snapshot or an image, or to attach the disk to a virtual machine).
      Customer-supplied encryption keys do not protect access to metadata of
      the disk.  If you do not provide an encryption key when creating the
      disk, then the disk will be encrypted using an automatically generated
      key and you do not need to provide a key to use the disk later.
    guestOsFeatures: A list of features to enable on the guest operating
      system. Applicable only for bootable images. Read  Enabling guest
      operating system features to see a list of available options.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#disk for disks.
    labelFingerprint: A fingerprint for the labels being applied to this disk,
      which is essentially a hash of the labels set used for optimistic
      locking. The fingerprint is initially generated by Compute Engine and
      changes after every request to modify or update labels. You must always
      provide an up-to-date fingerprint hash in order to update or change
      labels.  To see the latest fingerprint, make a get() request to retrieve
      a disk.
    labels: Labels to apply to this disk. These can be later modified by the
      setLabels method.
    lastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339 text
      format.
    lastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339 text
      format.
    licenseCodes: Integer license codes indicating which licenses are attached
      to this disk.
    licenses: Any applicable publicly visible licenses.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    options: Internal use only.
    region: [Output Only] URL of the region where the disk resides. Only
      applicable for regional resources. You must specify this field as part
      of the HTTP request URL. It is not settable as a field in the request
      body.
    replicaZones: URLs of the zones where the disk should be replicated to.
      Only applicable for regional resources.
    selfLink: [Output Only] Server-defined fully-qualified URL for this
      resource.
    sizeGb: Size of the persistent disk, specified in GB. You can specify this
      field when creating a persistent disk using the sourceImage or
      sourceSnapshot parameter, or specify it alone to create an empty
      persistent disk.  If you specify this field along with sourceImage or
      sourceSnapshot, the value of sizeGb must not be less than the size of
      the sourceImage or the size of the snapshot. Acceptable values are 1 to
      65536, inclusive.
    sourceImage: The source image used to create this disk. If the source
      image is deleted, this field will not be set.  To create a disk with one
      of the public operating system images, specify the image by its family
      name. For example, specify family/debian-8 to use the latest Debian 8
      image: projects/debian-cloud/global/images/family/debian-8
      Alternatively, use a specific version of a public operating system
      image: projects/debian-cloud/global/images/debian-8-jessie-vYYYYMMDD
      To create a disk with a custom image that you created, specify the image
      name in the following format: global/images/my-custom-image   You can
      also specify a custom image by its image family, which returns the
      latest version of the image in that family. Replace the image name with
      family/family-name: global/images/family/my-image-family
    sourceImageEncryptionKey: The customer-supplied encryption key of the
      source image. Required if the source image is protected by a customer-
      supplied encryption key.
    sourceImageId: [Output Only] The ID value of the image used to create this
      disk. This value identifies the exact image that was used to create this
      persistent disk. For example, if you created the persistent disk from an
      image that was later deleted and recreated under the same name, the
      source image ID would identify the exact version of the image that was
      used.
    sourceSnapshot: The source snapshot used to create this disk. You can
      provide this as a partial or full URL to the resource. For example, the
      following are valid values:   - https://www.googleapis.com/compute/v1/pr
      ojects/project/global/snapshots/snapshot  -
      projects/project/global/snapshots/snapshot  - global/snapshots/snapshot
    sourceSnapshotEncryptionKey: The customer-supplied encryption key of the
      source snapshot. Required if the source snapshot is protected by a
      customer-supplied encryption key.
    sourceSnapshotId: [Output Only] The unique ID of the snapshot used to
      create this disk. This value identifies the exact snapshot that was used
      to create this persistent disk. For example, if you created the
      persistent disk from a snapshot that was later deleted and recreated
      under the same name, the source snapshot ID would identify the exact
      version of the snapshot that was used.
    status: [Output Only] The status of disk creation.
    type: URL of the disk type resource describing which disk type to use to
      create the disk. Provide this when creating the disk. For example:
      project/zones/zone/diskTypes/pd-standard or pd-ssd
    users: [Output Only] Links to the users of the disk (attached instances)
      in form: project/zones/zone/instances/instance
    zone: [Output Only] URL of the zone where the disk resides. You must
      specify this field as part of the HTTP request URL. It is not settable
      as a field in the request body.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of disk creation.

    Values:
      CREATING: <no description>
      FAILED: <no description>
      READY: <no description>
      RESTORING: <no description>
    """
    CREATING = 0
    FAILED = 1
    READY = 2
    RESTORING = 3

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Labels to apply to this disk. These can be later modified by the
    setLabels method.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  diskEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 3)
  guestOsFeatures = _messages.MessageField('GuestOsFeature', 4, repeated=True)
  id = _messages.IntegerField(5, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(6, default=u'compute#disk')
  labelFingerprint = _messages.BytesField(7)
  labels = _messages.MessageField('LabelsValue', 8)
  lastAttachTimestamp = _messages.StringField(9)
  lastDetachTimestamp = _messages.StringField(10)
  licenseCodes = _messages.IntegerField(11, repeated=True)
  licenses = _messages.StringField(12, repeated=True)
  name = _messages.StringField(13)
  options = _messages.StringField(14)
  region = _messages.StringField(15)
  replicaZones = _messages.StringField(16, repeated=True)
  selfLink = _messages.StringField(17)
  sizeGb = _messages.IntegerField(18)
  sourceImage = _messages.StringField(19)
  sourceImageEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 20)
  sourceImageId = _messages.StringField(21)
  sourceSnapshot = _messages.StringField(22)
  sourceSnapshotEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 23)
  sourceSnapshotId = _messages.StringField(24)
  status = _messages.EnumField('StatusValueValuesEnum', 25)
  type = _messages.StringField(26)
  users = _messages.StringField(27, repeated=True)
  zone = _messages.StringField(28)


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

  Messages:
    ItemsValue: A list of DisksScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of DisksScopedList resources.
    kind: [Output Only] Type of resource. Always compute#diskAggregatedList
      for aggregated lists of persistent disks.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of DisksScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of disks.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A DisksScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('DisksScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#diskAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class DiskInstantiationConfig(_messages.Message):
  r"""A specification of the desired way to instantiate a disk in the instance
  template when its created from a source instance.

  Enums:
    InstantiateFromValueValuesEnum: Specifies whether to include the disk and
      what image to use. Possible values are:   - source-image: to use the
      same image that was used to create the source instance's corresponding
      disk. Applicable to the boot disk and additional read-write disks.  -
      source-image-family: to use the same image family that was used to
      create the source instance's corresponding disk. Applicable to the boot
      disk and additional read-write disks.  - custom-image: to use a user-
      provided image url for disk creation. Applicable to the boot disk and
      additional read-write disks.  - attach-read-only: to attach a read-only
      disk. Applicable to read-only disks.  - do-not-include: to exclude a
      disk from the template. Applicable to additional read-write disks, local
      SSDs, and read-only disks.

  Fields:
    autoDelete: Specifies whether the disk will be auto-deleted when the
      instance is deleted (but not when the disk is detached from the
      instance).
    customImage: The custom source image to be used to restore this disk when
      instantiating this instance template.
    deviceName: Specifies the device name of the disk to which the
      configurations apply to.
    instantiateFrom: Specifies whether to include the disk and what image to
      use. Possible values are:   - source-image: to use the same image that
      was used to create the source instance's corresponding disk. Applicable
      to the boot disk and additional read-write disks.  - source-image-
      family: to use the same image family that was used to create the source
      instance's corresponding disk. Applicable to the boot disk and
      additional read-write disks.  - custom-image: to use a user-provided
      image url for disk creation. Applicable to the boot disk and additional
      read-write disks.  - attach-read-only: to attach a read-only disk.
      Applicable to read-only disks.  - do-not-include: to exclude a disk from
      the template. Applicable to additional read-write disks, local SSDs, and
      read-only disks.
  """

  class InstantiateFromValueValuesEnum(_messages.Enum):
    r"""Specifies whether to include the disk and what image to use. Possible
    values are:   - source-image: to use the same image that was used to
    create the source instance's corresponding disk. Applicable to the boot
    disk and additional read-write disks.  - source-image-family: to use the
    same image family that was used to create the source instance's
    corresponding disk. Applicable to the boot disk and additional read-write
    disks.  - custom-image: to use a user-provided image url for disk
    creation. Applicable to the boot disk and additional read-write disks.  -
    attach-read-only: to attach a read-only disk. Applicable to read-only
    disks.  - do-not-include: to exclude a disk from the template. Applicable
    to additional read-write disks, local SSDs, and read-only disks.

    Values:
      ATTACH_READ_ONLY: <no description>
      BLANK: <no description>
      CUSTOM_IMAGE: <no description>
      DEFAULT: <no description>
      DO_NOT_INCLUDE: <no description>
      SOURCE_IMAGE: <no description>
      SOURCE_IMAGE_FAMILY: <no description>
    """
    ATTACH_READ_ONLY = 0
    BLANK = 1
    CUSTOM_IMAGE = 2
    DEFAULT = 3
    DO_NOT_INCLUDE = 4
    SOURCE_IMAGE = 5
    SOURCE_IMAGE_FAMILY = 6

  autoDelete = _messages.BooleanField(1)
  customImage = _messages.StringField(2)
  deviceName = _messages.StringField(3)
  instantiateFrom = _messages.EnumField('InstantiateFromValueValuesEnum', 4)


class DiskList(_messages.Message):
  r"""A list of Disk resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Disk resources.
    kind: [Output Only] Type of resource. Always compute#diskList for lists of
      disks.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Disk', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#diskList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    destinationZone: The URL of the destination zone to move the disk. This
      can be a full or partial URL. For example, the following are all valid
      URLs to a zone:   -
      https://www.googleapis.com/compute/v1/projects/project/zones/zone  -
      projects/project/zones/zone  - zones/zone
    targetDisk: The URL of the target disk to move. This can be a full or
      partial URL. For example, the following are all valid URLs to a disk:
      - https://www.googleapis.com/compute/v1/projects/project/zones/zone/disk
      s/disk  - projects/project/zones/zone/disks/disk  -
      zones/zone/disks/disk
  """

  destinationZone = _messages.StringField(1)
  targetDisk = _messages.StringField(2)


class DiskType(_messages.Message):
  r"""A DiskType resource. (== resource_for beta.diskTypes ==) (==
  resource_for v1.diskTypes ==)

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    defaultDiskSizeGb: [Output Only] Server-defined default disk size in GB.
    deprecated: [Output Only] The deprecation status associated with this disk
      type.
    description: [Output Only] An optional description of this resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#diskType for disk
      types.
    name: [Output Only] Name of the resource.
    region: [Output Only] URL of the region where the disk type resides. Only
      applicable for regional resources. You must specify this field as part
      of the HTTP request URL. It is not settable as a field in the request
      body.
    selfLink: [Output Only] Server-defined URL for the resource.
    validDiskSize: [Output Only] An optional textual description of the valid
      disk size, such as "10GB-10TB".
    zone: [Output Only] URL of the zone where the disk type resides. You must
      specify this field as part of the HTTP request URL. It is not settable
      as a field in the request body.
  """

  creationTimestamp = _messages.StringField(1)
  defaultDiskSizeGb = _messages.IntegerField(2)
  deprecated = _messages.MessageField('DeprecationStatus', 3)
  description = _messages.StringField(4)
  id = _messages.IntegerField(5, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(6, default=u'compute#diskType')
  name = _messages.StringField(7)
  region = _messages.StringField(8)
  selfLink = _messages.StringField(9)
  validDiskSize = _messages.StringField(10)
  zone = _messages.StringField(11)


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

  Messages:
    ItemsValue: A list of DiskTypesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of DiskTypesScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#diskTypeAggregatedList.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of DiskTypesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of disk types.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A DiskTypesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('DiskTypesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#diskTypeAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class DiskTypeList(_messages.Message):
  r"""Contains a list of disk types.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of DiskType resources.
    kind: [Output Only] Type of resource. Always compute#diskTypeList for disk
      types.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('DiskType', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#diskTypeList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of disk types when the list is empty.

  Fields:
    diskTypes: [Output Only] A list of disk types contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      disk types when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of disk
    types when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  diskTypes = _messages.MessageField('DiskType', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    sizeGb: The new size of the persistent disk, which is specified in GB.
  """

  sizeGb = _messages.IntegerField(1)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of disks when the list is empty.

  Fields:
    disks: [Output Only] A list of disks contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      disks when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of disks
    when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  disks = _messages.MessageField('Disk', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    zones: Zones where the regional managed instance group will create and
      manage instances.
  """

  zones = _messages.MessageField('DistributionPolicyZoneConfiguration', 1, repeated=True)


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

  Fields:
    zone: The URL of the zone. The zone must exist in the region where the
      managed instance group is located.
  """

  zone = _messages.StringField(1)


class Firewall(_messages.Message):
  r"""Represents a Firewall resource.

  Enums:
    DirectionValueValuesEnum: Direction of traffic to which this firewall
      applies; default is INGRESS. Note: For INGRESS traffic, it is NOT
      supported to specify destinationRanges; For EGRESS traffic, it is NOT
      supported to specify sourceRanges OR sourceTags.

  Messages:
    AllowedValueListEntry: A AllowedValueListEntry object.
    DeniedValueListEntry: A DeniedValueListEntry object.

  Fields:
    allowed: The list of ALLOW rules specified by this firewall. Each rule
      specifies a protocol and port-range tuple that describes a permitted
      connection.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    denied: The list of DENY rules specified by this firewall. Each rule
      specifies a protocol and port-range tuple that describes a denied
      connection.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    destinationRanges: If destination ranges are specified, the firewall will
      apply only to traffic that has destination IP address in these ranges.
      These ranges must be expressed in CIDR format. Only IPv4 is supported.
    direction: Direction of traffic to which this firewall applies; default is
      INGRESS. Note: For INGRESS traffic, it is NOT supported to specify
      destinationRanges; For EGRESS traffic, it is NOT supported to specify
      sourceRanges OR sourceTags.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#firewall for
      firewall rules.
    name: Name of the resource; provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    network: URL of the network resource for this firewall rule. If not
      specified when creating a firewall rule, the default network is used:
      global/networks/default If you choose to specify this property, you can
      specify the network as a full or partial URL. For example, the following
      are all valid URLs:   -
      https://www.googleapis.com/compute/v1/projects/myproject/global/networks
      /my-network  - projects/myproject/global/networks/my-network  -
      global/networks/default
    priority: Priority for this rule. This is an integer between 0 and 65535,
      both inclusive. When not specified, the value assumed is 1000. Relative
      priorities determine precedence of conflicting rules. Lower value of
      priority implies higher precedence (eg, a rule with priority 0 has
      higher precedence than a rule with priority 1). DENY rules take
      precedence over ALLOW rules having equal priority.
    selfLink: [Output Only] Server-defined URL for the resource.
    sourceRanges: If source ranges are specified, the firewall will apply only
      to traffic that has source IP address in these ranges. These ranges must
      be expressed in CIDR format. One or both of sourceRanges and sourceTags
      may be set. If both properties are set, the firewall will apply to
      traffic that has source IP address within sourceRanges OR the source IP
      that belongs to a tag listed in the sourceTags property. The connection
      does not need to match both properties for the firewall to apply. Only
      IPv4 is supported.
    sourceServiceAccounts: If source service accounts are specified, the
      firewall will apply only to traffic originating from an instance with a
      service account in this list. Source service accounts cannot be used to
      control traffic to an instance's external IP address because service
      accounts are associated with an instance, not an IP address.
      sourceRanges can be set at the same time as sourceServiceAccounts. If
      both are set, the firewall will apply to traffic that has source IP
      address within sourceRanges OR the source IP belongs to an instance with
      service account listed in sourceServiceAccount. The connection does not
      need to match both properties for the firewall to apply.
      sourceServiceAccounts cannot be used at the same time as sourceTags or
      targetTags.
    sourceTags: If source tags are specified, the firewall rule applies only
      to traffic with source IPs that match the primary network interfaces of
      VM instances that have the tag and are in the same VPC network. Source
      tags cannot be used to control traffic to an instance's external IP
      address, it only applies to traffic between instances in the same
      virtual network. Because tags are associated with instances, not IP
      addresses. One or both of sourceRanges and sourceTags may be set. If
      both properties are set, the firewall will apply to traffic that has
      source IP address within sourceRanges OR the source IP that belongs to a
      tag listed in the sourceTags property. The connection does not need to
      match both properties for the firewall to apply.
    targetServiceAccounts: A list of service accounts indicating sets of
      instances located in the network that may make network connections as
      specified in allowed[]. targetServiceAccounts cannot be used at the same
      time as targetTags or sourceTags. If neither targetServiceAccounts nor
      targetTags are specified, the firewall rule applies to all instances on
      the specified network.
    targetTags: A list of tags that controls which instances the firewall rule
      applies to. If targetTags are specified, then the firewall rule applies
      only to instances in the VPC network that have one of those tags. If no
      targetTags are specified, the firewall rule applies to all instances on
      the specified network.
  """

  class DirectionValueValuesEnum(_messages.Enum):
    r"""Direction of traffic to which this firewall applies; default is
    INGRESS. Note: For INGRESS traffic, it is NOT supported to specify
    destinationRanges; For EGRESS traffic, it is NOT supported to specify
    sourceRanges OR sourceTags.

    Values:
      EGRESS: <no description>
      INGRESS: <no description>
    """
    EGRESS = 0
    INGRESS = 1

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

    Fields:
      IPProtocol: The IP protocol to which this rule applies. The protocol
        type is required when creating a firewall rule. This value can either
        be one of the following well known protocol strings (tcp, udp, icmp,
        esp, ah, ipip, sctp), or the IP protocol number.
      ports: An optional list of ports to which this rule applies. This field
        is only applicable for UDP or TCP protocol. Each entry must be either
        an integer or a range. If not specified, this rule applies to
        connections through any port.  Example inputs include: ["22"],
        ["80","443"], and ["12345-12349"].
    """

    IPProtocol = _messages.StringField(1)
    ports = _messages.StringField(2, repeated=True)

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

    Fields:
      IPProtocol: The IP protocol to which this rule applies. The protocol
        type is required when creating a firewall rule. This value can either
        be one of the following well known protocol strings (tcp, udp, icmp,
        esp, ah, ipip, sctp), or the IP protocol number.
      ports: An optional list of ports to which this rule applies. This field
        is only applicable for UDP or TCP protocol. Each entry must be either
        an integer or a range. If not specified, this rule applies to
        connections through any port.  Example inputs include: ["22"],
        ["80","443"], and ["12345-12349"].
    """

    IPProtocol = _messages.StringField(1)
    ports = _messages.StringField(2, repeated=True)

  allowed = _messages.MessageField('AllowedValueListEntry', 1, repeated=True)
  creationTimestamp = _messages.StringField(2)
  denied = _messages.MessageField('DeniedValueListEntry', 3, repeated=True)
  description = _messages.StringField(4)
  destinationRanges = _messages.StringField(5, repeated=True)
  direction = _messages.EnumField('DirectionValueValuesEnum', 6)
  id = _messages.IntegerField(7, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(8, default=u'compute#firewall')
  name = _messages.StringField(9)
  network = _messages.StringField(10)
  priority = _messages.IntegerField(11, variant=_messages.Variant.INT32)
  selfLink = _messages.StringField(12)
  sourceRanges = _messages.StringField(13, repeated=True)
  sourceServiceAccounts = _messages.StringField(14, repeated=True)
  sourceTags = _messages.StringField(15, repeated=True)
  targetServiceAccounts = _messages.StringField(16, repeated=True)
  targetTags = _messages.StringField(17, repeated=True)


class FirewallList(_messages.Message):
  r"""Contains a list of firewalls.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Firewall resources.
    kind: [Output Only] Type of resource. Always compute#firewallList for
      lists of firewalls.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Firewall', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#firewallList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class ForwardingRule(_messages.Message):
  r"""A ForwardingRule resource. A ForwardingRule resource specifies which
  pool of target virtual machines to forward a packet to if it matches the
  given [IPAddress, IPProtocol, ports] tuple. (== resource_for
  beta.forwardingRules ==) (== resource_for v1.forwardingRules ==) (==
  resource_for beta.globalForwardingRules ==) (== resource_for
  v1.globalForwardingRules ==) (== resource_for beta.regionForwardingRules ==)
  (== resource_for v1.regionForwardingRules ==)

  Enums:
    IPProtocolValueValuesEnum: The IP protocol to which this rule applies.
      Valid options are TCP, UDP, ESP, AH, SCTP or ICMP.  When the load
      balancing scheme is INTERNAL, only TCP and UDP are valid. When the load
      balancing scheme is INTERNAL_SELF_MANAGED, only TCPis valid.
    IpVersionValueValuesEnum: The IP Version that will be used by this
      forwarding rule. Valid options are IPV4 or IPV6. This can only be
      specified for an external global forwarding rule.
    LoadBalancingSchemeValueValuesEnum: This signifies what the ForwardingRule
      will be used for and can only take the following values: INTERNAL,
      INTERNAL_SELF_MANAGED, EXTERNAL. The value of INTERNAL means that this
      will be used for Internal Network Load Balancing (TCP, UDP). The value
      of INTERNAL_SELF_MANAGED means that this will be used for Internal
      Global HTTP(S) LB. The value of EXTERNAL means that this will be used
      for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)

  Fields:
    IPAddress: The IP address that this forwarding rule is serving on behalf
      of.  Addresses are restricted based on the forwarding rule's load
      balancing scheme (EXTERNAL or INTERNAL) and scope (global or regional).
      When the load balancing scheme is EXTERNAL, for global forwarding rules,
      the address must be a global IP, and for regional forwarding rules, the
      address must live in the same region as the forwarding rule. If this
      field is empty, an ephemeral IPv4 address from the same scope (global or
      regional) will be assigned. A regional forwarding rule supports IPv4
      only. A global forwarding rule supports either IPv4 or IPv6.  When the
      load balancing scheme is INTERNAL_SELF_MANAGED, this must be a URL
      reference to an existing Address resource ( internal regional static IP
      address).  When the load balancing scheme is INTERNAL, this can only be
      an RFC 1918 IP address belonging to the network/subnet configured for
      the forwarding rule. By default, if this field is empty, an ephemeral
      internal IP address will be automatically allocated from the IP range of
      the subnet or network configured for this forwarding rule.  An address
      can be specified either by a literal IP address or a URL reference to an
      existing Address resource. The following examples are all valid:   -
      100.1.2.3  - https://www.googleapis.com/compute/v1/projects/project/regi
      ons/region/addresses/address  -
      projects/project/regions/region/addresses/address  -
      regions/region/addresses/address  - global/addresses/address  - address
    IPProtocol: The IP protocol to which this rule applies. Valid options are
      TCP, UDP, ESP, AH, SCTP or ICMP.  When the load balancing scheme is
      INTERNAL, only TCP and UDP are valid. When the load balancing scheme is
      INTERNAL_SELF_MANAGED, only TCPis valid.
    backendService: This field is only used for INTERNAL load balancing.  For
      internal load balancing, this field identifies the BackendService
      resource to receive the matched traffic.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    ipVersion: The IP Version that will be used by this forwarding rule. Valid
      options are IPV4 or IPV6. This can only be specified for an external
      global forwarding rule.
    kind: [Output Only] Type of the resource. Always compute#forwardingRule
      for Forwarding Rule resources.
    loadBalancingScheme: This signifies what the ForwardingRule will be used
      for and can only take the following values: INTERNAL,
      INTERNAL_SELF_MANAGED, EXTERNAL. The value of INTERNAL means that this
      will be used for Internal Network Load Balancing (TCP, UDP). The value
      of INTERNAL_SELF_MANAGED means that this will be used for Internal
      Global HTTP(S) LB. The value of EXTERNAL means that this will be used
      for External Load Balancing (HTTP(S) LB, External TCP/UDP LB, SSL Proxy)
    name: Name of the resource; provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    network: This field is not used for external load balancing.  For INTERNAL
      and INTERNAL_SELF_MANAGED load balancing, this field identifies the
      network that the load balanced IP should belong to for this Forwarding
      Rule. If this field is not specified, the default network will be used.
    portRange: This field is used along with the target field for
      TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
      TargetVpnGateway, TargetPool, TargetInstance.  Applicable only when
      IPProtocol is TCP, UDP, or SCTP, only packets addressed to ports in the
      specified range will be forwarded to target. Forwarding rules with the
      same [IPAddress, IPProtocol] pair must have disjoint port ranges.  Some
      types of forwarding target have constraints on the acceptable ports:   -
      TargetHttpProxy: 80, 8080  - TargetHttpsProxy: 443  - TargetTcpProxy:
      25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995, 1688, 1883, 5222  -
      TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993, 995,
      1688, 1883, 5222  - TargetVpnGateway: 500, 4500
    ports: This field is used along with the backend_service field for
      internal load balancing.  When the load balancing scheme is INTERNAL, a
      single port or a comma separated list of ports can be configured. Only
      packets addressed to these ports will be forwarded to the backends
      configured with this forwarding rule.  You may specify a maximum of up
      to 5 ports.
    region: [Output Only] URL of the region where the regional forwarding rule
      resides. This field is not applicable to global forwarding rules. You
      must specify this field as part of the HTTP request URL. It is not
      settable as a field in the request body.
    selfLink: [Output Only] Server-defined URL for the resource.
    subnetwork: This field is only used for INTERNAL load balancing.  For
      internal load balancing, this field identifies the subnetwork that the
      load balanced IP should belong to for this Forwarding Rule.  If the
      network specified is in auto subnet mode, this field is optional.
      However, if the network is in custom subnet mode, a subnetwork must be
      specified.
    target: The URL of the target resource to receive the matched traffic. For
      regional forwarding rules, this target must live in the same region as
      the forwarding rule. For global forwarding rules, this target must be a
      global load balancing resource. The forwarded traffic must be of a type
      appropriate to the target object. For INTERNAL_SELF_MANAGED" load
      balancing, only HTTP and HTTPS targets are valid.
  """

  class IPProtocolValueValuesEnum(_messages.Enum):
    r"""The IP protocol to which this rule applies. Valid options are TCP,
    UDP, ESP, AH, SCTP or ICMP.  When the load balancing scheme is INTERNAL,
    only TCP and UDP are valid. When the load balancing scheme is
    INTERNAL_SELF_MANAGED, only TCPis valid.

    Values:
      AH: <no description>
      ESP: <no description>
      ICMP: <no description>
      SCTP: <no description>
      TCP: <no description>
      UDP: <no description>
    """
    AH = 0
    ESP = 1
    ICMP = 2
    SCTP = 3
    TCP = 4
    UDP = 5

  class IpVersionValueValuesEnum(_messages.Enum):
    r"""The IP Version that will be used by this forwarding rule. Valid
    options are IPV4 or IPV6. This can only be specified for an external
    global forwarding rule.

    Values:
      IPV4: <no description>
      IPV6: <no description>
      UNSPECIFIED_VERSION: <no description>
    """
    IPV4 = 0
    IPV6 = 1
    UNSPECIFIED_VERSION = 2

  class LoadBalancingSchemeValueValuesEnum(_messages.Enum):
    r"""This signifies what the ForwardingRule will be used for and can only
    take the following values: INTERNAL, INTERNAL_SELF_MANAGED, EXTERNAL. The
    value of INTERNAL means that this will be used for Internal Network Load
    Balancing (TCP, UDP). The value of INTERNAL_SELF_MANAGED means that this
    will be used for Internal Global HTTP(S) LB. The value of EXTERNAL means
    that this will be used for External Load Balancing (HTTP(S) LB, External
    TCP/UDP LB, SSL Proxy)

    Values:
      EXTERNAL: <no description>
      INTERNAL: <no description>
      INVALID: <no description>
    """
    EXTERNAL = 0
    INTERNAL = 1
    INVALID = 2

  IPAddress = _messages.StringField(1)
  IPProtocol = _messages.EnumField('IPProtocolValueValuesEnum', 2)
  backendService = _messages.StringField(3)
  creationTimestamp = _messages.StringField(4)
  description = _messages.StringField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  ipVersion = _messages.EnumField('IpVersionValueValuesEnum', 7)
  kind = _messages.StringField(8, default=u'compute#forwardingRule')
  loadBalancingScheme = _messages.EnumField('LoadBalancingSchemeValueValuesEnum', 9)
  name = _messages.StringField(10)
  network = _messages.StringField(11)
  portRange = _messages.StringField(12)
  ports = _messages.StringField(13, repeated=True)
  region = _messages.StringField(14)
  selfLink = _messages.StringField(15)
  subnetwork = _messages.StringField(16)
  target = _messages.StringField(17)


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

  Messages:
    ItemsValue: A list of ForwardingRulesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of ForwardingRulesScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#forwardingRuleAggregatedList for lists of forwarding rules.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of ForwardingRulesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of
        addresses.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A ForwardingRulesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('ForwardingRulesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#forwardingRuleAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class ForwardingRuleList(_messages.Message):
  r"""Contains a list of ForwardingRule resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of ForwardingRule resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ForwardingRule', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#forwardingRuleList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: Informational warning which replaces the list of forwarding
      rules when the list is empty.

  Fields:
    forwardingRules: A list of forwarding rules contained in this scope.
    warning: Informational warning which replaces the list of forwarding rules
      when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of forwarding rules when
    the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  forwardingRules = _messages.MessageField('ForwardingRule', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Messages:
    LabelsValue: A list of labels to apply for this resource. Each label key &
      value must comply with RFC1035. Specifically, the name must be 1-63
      characters long and match the regular expression
      `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
      lowercase letter, and all following characters must be a dash, lowercase
      letter, or digit, except the last character, which cannot be a dash. For
      example, "webserver-frontend": "images". A label value can also be empty
      (e.g. "my-label": "").

  Fields:
    labelFingerprint: The fingerprint of the previous set of labels for this
      resource, used to detect conflicts. The fingerprint is initially
      generated by Compute Engine and changes after every request to modify or
      update labels. You must always provide an up-to-date fingerprint hash
      when updating or changing labels. Make a get() request to the resource
      to get the latest fingerprint.
    labels: A list of labels to apply for this resource. Each label key &
      value must comply with RFC1035. Specifically, the name must be 1-63
      characters long and match the regular expression
      `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
      lowercase letter, and all following characters must be a dash, lowercase
      letter, or digit, except the last character, which cannot be a dash. For
      example, "webserver-frontend": "images". A label value can also be empty
      (e.g. "my-label": "").
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""A list of labels to apply for this resource. Each label key & value
    must comply with RFC1035. Specifically, the name must be 1-63 characters
    long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which
    means the first character must be a lowercase letter, and all following
    characters must be a dash, lowercase letter, or digit, except the last
    character, which cannot be a dash. For example, "webserver-frontend":
    "images". A label value can also be empty (e.g. "my-label": "").

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  labelFingerprint = _messages.BytesField(1)
  labels = _messages.MessageField('LabelsValue', 2)


class GuestOsFeature(_messages.Message):
  r"""Guest OS features.

  Enums:
    TypeValueValuesEnum: The ID of a supported feature. Read  Enabling guest
      operating system features to see a list of available options.

  Fields:
    type: The ID of a supported feature. Read  Enabling guest operating system
      features to see a list of available options.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The ID of a supported feature. Read  Enabling guest operating system
    features to see a list of available options.

    Values:
      FEATURE_TYPE_UNSPECIFIED: <no description>
      MULTI_IP_SUBNET: <no description>
      SECURE_BOOT: <no description>
      UEFI_COMPATIBLE: <no description>
      VIRTIO_SCSI_MULTIQUEUE: <no description>
      WINDOWS: <no description>
    """
    FEATURE_TYPE_UNSPECIFIED = 0
    MULTI_IP_SUBNET = 1
    SECURE_BOOT = 2
    UEFI_COMPATIBLE = 3
    VIRTIO_SCSI_MULTIQUEUE = 4
    WINDOWS = 5

  type = _messages.EnumField('TypeValueValuesEnum', 1)


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

  Enums:
    ProxyHeaderValueValuesEnum: Specifies the type of proxy header to append
      before sending data to the backend, either NONE or PROXY_V1. The default
      is NONE.

  Fields:
    host: The value of the host header in the HTTP health check request. If
      left empty (default value), the IP on behalf of which this health check
      is performed will be used.
    port: The TCP port number for the health check request. The default value
      is 80. Valid values are 1 through 65535.
    portName: Port name as defined in InstanceGroup#NamedPort#name. If both
      port and port_name are defined, port takes precedence.
    proxyHeader: Specifies the type of proxy header to append before sending
      data to the backend, either NONE or PROXY_V1. The default is NONE.
    requestPath: The request path of the HTTP health check request. The
      default value is /.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""Specifies the type of proxy header to append before sending data to
    the backend, either NONE or PROXY_V1. The default is NONE.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  host = _messages.StringField(1)
  port = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  portName = _messages.StringField(3)
  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 4)
  requestPath = _messages.StringField(5)


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

  Enums:
    ProxyHeaderValueValuesEnum: Specifies the type of proxy header to append
      before sending data to the backend, either NONE or PROXY_V1. The default
      is NONE.

  Fields:
    host: The value of the host header in the HTTPS health check request. If
      left empty (default value), the IP on behalf of which this health check
      is performed will be used.
    port: The TCP port number for the health check request. The default value
      is 443. Valid values are 1 through 65535.
    portName: Port name as defined in InstanceGroup#NamedPort#name. If both
      port and port_name are defined, port takes precedence.
    proxyHeader: Specifies the type of proxy header to append before sending
      data to the backend, either NONE or PROXY_V1. The default is NONE.
    requestPath: The request path of the HTTPS health check request. The
      default value is /.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""Specifies the type of proxy header to append before sending data to
    the backend, either NONE or PROXY_V1. The default is NONE.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  host = _messages.StringField(1)
  port = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  portName = _messages.StringField(3)
  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 4)
  requestPath = _messages.StringField(5)


class HealthCheck(_messages.Message):
  r"""An HealthCheck resource. This resource defines a template for how
  individual virtual machines should be checked for health, via one of the
  supported protocols.

  Enums:
    TypeValueValuesEnum: Specifies the type of the healthCheck, either TCP,
      SSL, HTTP or HTTPS. If not specified, the default is TCP. Exactly one of
      the protocol-specific health check field must be specified, which must
      match type field.

  Fields:
    checkIntervalSec: How often (in seconds) to send a health check. The
      default value is 5 seconds.
    creationTimestamp: [Output Only] Creation timestamp in 3339 text format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    healthyThreshold: A so-far unhealthy instance will be marked healthy after
      this many consecutive successes. The default value is 2.
    httpHealthCheck: A HTTPHealthCheck attribute.
    httpsHealthCheck: A HTTPSHealthCheck attribute.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: Type of the resource.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    selfLink: [Output Only] Server-defined URL for the resource.
    sslHealthCheck: A SSLHealthCheck attribute.
    tcpHealthCheck: A TCPHealthCheck attribute.
    timeoutSec: How long (in seconds) to wait before claiming failure. The
      default value is 5 seconds. It is invalid for timeoutSec to have greater
      value than checkIntervalSec.
    type: Specifies the type of the healthCheck, either TCP, SSL, HTTP or
      HTTPS. If not specified, the default is TCP. Exactly one of the
      protocol-specific health check field must be specified, which must match
      type field.
    unhealthyThreshold: A so-far healthy instance will be marked unhealthy
      after this many consecutive failures. The default value is 2.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Specifies the type of the healthCheck, either TCP, SSL, HTTP or HTTPS.
    If not specified, the default is TCP. Exactly one of the protocol-specific
    health check field must be specified, which must match type field.

    Values:
      HTTP: <no description>
      HTTPS: <no description>
      INVALID: <no description>
      SSL: <no description>
      TCP: <no description>
    """
    HTTP = 0
    HTTPS = 1
    INVALID = 2
    SSL = 3
    TCP = 4

  checkIntervalSec = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  healthyThreshold = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  httpHealthCheck = _messages.MessageField('HTTPHealthCheck', 5)
  httpsHealthCheck = _messages.MessageField('HTTPSHealthCheck', 6)
  id = _messages.IntegerField(7, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(8, default=u'compute#healthCheck')
  name = _messages.StringField(9)
  selfLink = _messages.StringField(10)
  sslHealthCheck = _messages.MessageField('SSLHealthCheck', 11)
  tcpHealthCheck = _messages.MessageField('TCPHealthCheck', 12)
  timeoutSec = _messages.IntegerField(13, variant=_messages.Variant.INT32)
  type = _messages.EnumField('TypeValueValuesEnum', 14)
  unhealthyThreshold = _messages.IntegerField(15, variant=_messages.Variant.INT32)


class HealthCheckList(_messages.Message):
  r"""Contains a list of HealthCheck resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of HealthCheck resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('HealthCheck', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#healthCheckList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class HealthCheckReference(_messages.Message):
  r"""A full or valid partial URL to a health check. For example, the
  following are valid URLs:   -
  https://www.googleapis.com/compute/beta/projects/project-
  id/global/httpHealthChecks/health-check  - projects/project-
  id/global/httpHealthChecks/health-check  - global/httpHealthChecks/health-
  check

  Fields:
    healthCheck: A string attribute.
  """

  healthCheck = _messages.StringField(1)


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

  Enums:
    HealthStateValueValuesEnum: Health state of the instance.

  Fields:
    healthState: Health state of the instance.
    instance: URL of the instance resource.
    ipAddress: The IP address represented by this resource.
    port: The port on the instance.
  """

  class HealthStateValueValuesEnum(_messages.Enum):
    r"""Health state of the instance.

    Values:
      HEALTHY: <no description>
      UNHEALTHY: <no description>
    """
    HEALTHY = 0
    UNHEALTHY = 1

  healthState = _messages.EnumField('HealthStateValueValuesEnum', 1)
  instance = _messages.StringField(2)
  ipAddress = _messages.StringField(3)
  port = _messages.IntegerField(4, variant=_messages.Variant.INT32)


class HostRule(_messages.Message):
  r"""UrlMaps A host-matching rule for a URL. If matched, will use the named
  PathMatcher to select the BackendService.

  Fields:
    description: An optional description of this resource. Provide this
      property when you create the resource.
    hosts: The list of host patterns to match. They must be valid hostnames,
      except * will match any string of ([a-z0-9-.]*). In that case, * must be
      the first character and must be followed in the pattern by either - or
      ..
    pathMatcher: The name of the PathMatcher to use to match the path portion
      of the URL if the hostRule matches the URL's host portion.
  """

  description = _messages.StringField(1)
  hosts = _messages.StringField(2, repeated=True)
  pathMatcher = _messages.StringField(3)


class HttpHealthCheck(_messages.Message):
  r"""An HttpHealthCheck resource. This resource defines a template for how
  individual instances should be checked for health, via HTTP.

  Fields:
    checkIntervalSec: How often (in seconds) to send a health check. The
      default value is 5 seconds.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    healthyThreshold: A so-far unhealthy instance will be marked healthy after
      this many consecutive successes. The default value is 2.
    host: The value of the host header in the HTTP health check request. If
      left empty (default value), the public IP on behalf of which this health
      check is performed will be used.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#httpHealthCheck
      for HTTP health checks.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    port: The TCP port number for the HTTP health check request. The default
      value is 80.
    requestPath: The request path of the HTTP health check request. The
      default value is /.
    selfLink: [Output Only] Server-defined URL for the resource.
    timeoutSec: How long (in seconds) to wait before claiming failure. The
      default value is 5 seconds. It is invalid for timeoutSec to have greater
      value than checkIntervalSec.
    unhealthyThreshold: A so-far healthy instance will be marked unhealthy
      after this many consecutive failures. The default value is 2.
  """

  checkIntervalSec = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  healthyThreshold = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  host = _messages.StringField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#httpHealthCheck')
  name = _messages.StringField(8)
  port = _messages.IntegerField(9, variant=_messages.Variant.INT32)
  requestPath = _messages.StringField(10)
  selfLink = _messages.StringField(11)
  timeoutSec = _messages.IntegerField(12, variant=_messages.Variant.INT32)
  unhealthyThreshold = _messages.IntegerField(13, variant=_messages.Variant.INT32)


class HttpHealthCheckList(_messages.Message):
  r"""Contains a list of HttpHealthCheck resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of HttpHealthCheck resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('HttpHealthCheck', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#httpHealthCheckList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class HttpsHealthCheck(_messages.Message):
  r"""An HttpsHealthCheck resource. This resource defines a template for how
  individual instances should be checked for health, via HTTPS.

  Fields:
    checkIntervalSec: How often (in seconds) to send a health check. The
      default value is 5 seconds.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    healthyThreshold: A so-far unhealthy instance will be marked healthy after
      this many consecutive successes. The default value is 2.
    host: The value of the host header in the HTTPS health check request. If
      left empty (default value), the public IP on behalf of which this health
      check is performed will be used.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: Type of the resource.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    port: The TCP port number for the HTTPS health check request. The default
      value is 443.
    requestPath: The request path of the HTTPS health check request. The
      default value is "/".
    selfLink: [Output Only] Server-defined URL for the resource.
    timeoutSec: How long (in seconds) to wait before claiming failure. The
      default value is 5 seconds. It is invalid for timeoutSec to have a
      greater value than checkIntervalSec.
    unhealthyThreshold: A so-far healthy instance will be marked unhealthy
      after this many consecutive failures. The default value is 2.
  """

  checkIntervalSec = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  healthyThreshold = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  host = _messages.StringField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#httpsHealthCheck')
  name = _messages.StringField(8)
  port = _messages.IntegerField(9, variant=_messages.Variant.INT32)
  requestPath = _messages.StringField(10)
  selfLink = _messages.StringField(11)
  timeoutSec = _messages.IntegerField(12, variant=_messages.Variant.INT32)
  unhealthyThreshold = _messages.IntegerField(13, variant=_messages.Variant.INT32)


class HttpsHealthCheckList(_messages.Message):
  r"""Contains a list of HttpsHealthCheck resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of HttpsHealthCheck resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('HttpsHealthCheck', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#httpsHealthCheckList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class Image(_messages.Message):
  r"""An Image resource. (== resource_for beta.images ==) (== resource_for
  v1.images ==)

  Enums:
    SourceTypeValueValuesEnum: The type of the image used to create this disk.
      The default and only value is RAW
    StatusValueValuesEnum: [Output Only] The status of the image. An image can
      be used to create other resources, such as instances, only after the
      image has been successfully created and the status is set to READY.
      Possible values are FAILED, PENDING, or READY.

  Messages:
    LabelsValue: Labels to apply to this image. These can be later modified by
      the setLabels method.
    RawDiskValue: The parameters of the raw disk image.

  Fields:
    archiveSizeBytes: Size of the image tar.gz archive stored in Google Cloud
      Storage (in bytes).
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    deprecated: The deprecation status associated with this image.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    diskSizeGb: Size of the image when restored onto a persistent disk (in
      GB).
    family: The name of the image family to which this image belongs. You can
      create disks by specifying an image family instead of a specific image
      name. The image family always returns its latest image that is not
      deprecated. The name of the image family must comply with RFC1035.
    guestOsFeatures: A list of features to enable on the guest operating
      system. Applicable only for bootable images. Read  Enabling guest
      operating system features to see a list of available options.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    imageEncryptionKey: Encrypts the image using a customer-supplied
      encryption key.  After you encrypt an image with a customer-supplied
      key, you must provide the same key if you use the image later (e.g. to
      create a disk from the image).  Customer-supplied encryption keys do not
      protect access to metadata of the disk.  If you do not provide an
      encryption key when creating the image, then the disk will be encrypted
      using an automatically generated key and you do not need to provide a
      key to use the image later.
    kind: [Output Only] Type of the resource. Always compute#image for images.
    labelFingerprint: A fingerprint for the labels being applied to this
      image, which is essentially a hash of the labels used for optimistic
      locking. The fingerprint is initially generated by Compute Engine and
      changes after every request to modify or update labels. You must always
      provide an up-to-date fingerprint hash in order to update or change
      labels.  To see the latest fingerprint, make a get() request to retrieve
      an image.
    labels: Labels to apply to this image. These can be later modified by the
      setLabels method.
    licenseCodes: Integer license codes indicating which licenses are attached
      to this image.
    licenses: Any applicable license URI.
    name: Name of the resource; provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    rawDisk: The parameters of the raw disk image.
    selfLink: [Output Only] Server-defined URL for the resource.
    sourceDisk: URL of the source disk used to create this image. This can be
      a full or valid partial URL. You must provide either this property or
      the rawDisk.source property but not both to create an image. For
      example, the following are valid values:   - https://www.googleapis.com/
      compute/v1/projects/project/zones/zone/disks/disk  -
      projects/project/zones/zone/disks/disk  - zones/zone/disks/disk
    sourceDiskEncryptionKey: The customer-supplied encryption key of the
      source disk. Required if the source disk is protected by a customer-
      supplied encryption key.
    sourceDiskId: [Output Only] The ID value of the disk used to create this
      image. This value may be used to determine whether the image was taken
      from the current or a previous instance of a given disk name.
    sourceImage: URL of the source image used to create this image. This can
      be a full or valid partial URL. You must provide exactly one of:   -
      this property, or   - the rawDisk.source property, or   - the sourceDisk
      property   in order to create an image.
    sourceImageEncryptionKey: The customer-supplied encryption key of the
      source image. Required if the source image is protected by a customer-
      supplied encryption key.
    sourceImageId: [Output Only] The ID value of the image used to create this
      image. This value may be used to determine whether the image was taken
      from the current or a previous instance of a given image name.
    sourceSnapshot: URL of the source snapshot used to create this image. This
      can be a full or valid partial URL. You must provide exactly one of:   -
      this property, or   - the sourceImage property, or   - the
      rawDisk.source property, or   - the sourceDisk property   in order to
      create an image.
    sourceSnapshotEncryptionKey: The customer-supplied encryption key of the
      source snapshot. Required if the source snapshot is protected by a
      customer-supplied encryption key.
    sourceSnapshotId: [Output Only] The ID value of the snapshot used to
      create this image. This value may be used to determine whether the
      snapshot was taken from the current or a previous instance of a given
      snapshot name.
    sourceType: The type of the image used to create this disk. The default
      and only value is RAW
    status: [Output Only] The status of the image. An image can be used to
      create other resources, such as instances, only after the image has been
      successfully created and the status is set to READY. Possible values are
      FAILED, PENDING, or READY.
  """

  class SourceTypeValueValuesEnum(_messages.Enum):
    r"""The type of the image used to create this disk. The default and only
    value is RAW

    Values:
      RAW: <no description>
    """
    RAW = 0

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the image. An image can be used to create
    other resources, such as instances, only after the image has been
    successfully created and the status is set to READY. Possible values are
    FAILED, PENDING, or READY.

    Values:
      FAILED: <no description>
      PENDING: <no description>
      READY: <no description>
    """
    FAILED = 0
    PENDING = 1
    READY = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Labels to apply to this image. These can be later modified by the
    setLabels method.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class RawDiskValue(_messages.Message):
    r"""The parameters of the raw disk image.

    Enums:
      ContainerTypeValueValuesEnum: The format used to encode and transmit the
        block device, which should be TAR. This is just a container and
        transmission format and not a runtime format. Provided by the client
        when the disk image is created.

    Fields:
      containerType: The format used to encode and transmit the block device,
        which should be TAR. This is just a container and transmission format
        and not a runtime format. Provided by the client when the disk image
        is created.
      sha1Checksum: An optional SHA1 checksum of the disk image before
        unpackaging; provided by the client when the disk image is created.
      source: The full Google Cloud Storage URL where the disk image is
        stored. You must provide either this property or the sourceDisk
        property but not both.
    """

    class ContainerTypeValueValuesEnum(_messages.Enum):
      r"""The format used to encode and transmit the block device, which
      should be TAR. This is just a container and transmission format and not
      a runtime format. Provided by the client when the disk image is created.

      Values:
        TAR: <no description>
      """
      TAR = 0

    containerType = _messages.EnumField('ContainerTypeValueValuesEnum', 1)
    sha1Checksum = _messages.StringField(2)
    source = _messages.StringField(3)

  archiveSizeBytes = _messages.IntegerField(1)
  creationTimestamp = _messages.StringField(2)
  deprecated = _messages.MessageField('DeprecationStatus', 3)
  description = _messages.StringField(4)
  diskSizeGb = _messages.IntegerField(5)
  family = _messages.StringField(6)
  guestOsFeatures = _messages.MessageField('GuestOsFeature', 7, repeated=True)
  id = _messages.IntegerField(8, variant=_messages.Variant.UINT64)
  imageEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 9)
  kind = _messages.StringField(10, default=u'compute#image')
  labelFingerprint = _messages.BytesField(11)
  labels = _messages.MessageField('LabelsValue', 12)
  licenseCodes = _messages.IntegerField(13, repeated=True)
  licenses = _messages.StringField(14, repeated=True)
  name = _messages.StringField(15)
  rawDisk = _messages.MessageField('RawDiskValue', 16)
  selfLink = _messages.StringField(17)
  sourceDisk = _messages.StringField(18)
  sourceDiskEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 19)
  sourceDiskId = _messages.StringField(20)
  sourceImage = _messages.StringField(21)
  sourceImageEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 22)
  sourceImageId = _messages.StringField(23)
  sourceSnapshot = _messages.StringField(24)
  sourceSnapshotEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 25)
  sourceSnapshotId = _messages.StringField(26)
  sourceType = _messages.EnumField('SourceTypeValueValuesEnum', 27, default=u'RAW')
  status = _messages.EnumField('StatusValueValuesEnum', 28)


class ImageList(_messages.Message):
  r"""Contains a list of images.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Image resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Image', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#imageList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class Instance(_messages.Message):
  r"""An Instance resource. (== resource_for beta.instances ==) (==
  resource_for v1.instances ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the instance. One of
      the following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
      SUSPENDING, SUSPENDED, and TERMINATED.

  Messages:
    LabelsValue: Labels to apply to this instance. These can be later modified
      by the setLabels method.

  Fields:
    canIpForward: Allows this instance to send and receive packets with non-
      matching destination or source IPs. This is required if you plan to use
      this instance to forward routes. For more information, see Enabling IP
      Forwarding.
    cpuPlatform: [Output Only] The CPU platform used by this instance.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    deletionProtection: Whether the resource should be protected against
      deletion.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    disks: Array of disks associated with this instance. Persistent disks must
      be created before you can assign them.
    guestAccelerators: A list of the type and count of accelerator cards
      attached to the instance.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#instance for
      instances.
    labelFingerprint: A fingerprint for this request, which is essentially a
      hash of the label's contents and used for optimistic locking. The
      fingerprint is initially generated by Compute Engine and changes after
      every request to modify or update labels. You must always provide an up-
      to-date fingerprint hash in order to update or change labels.  To see
      the latest fingerprint, make get() request to the instance.
    labels: Labels to apply to this instance. These can be later modified by
      the setLabels method.
    machineType: Full or partial URL of the machine type resource to use for
      this instance, in the format: zones/zone/machineTypes/machine-type. This
      is provided by the client when the instance is created. For example, the
      following is a valid partial url to a predefined machine type: zones/us-
      central1-f/machineTypes/n1-standard-1   To create a custom machine type,
      provide a URL to a machine type in the following format, where CPUS is 1
      or an even number up to 32 (2, 4, 6, ... 24, etc), and MEMORY is the
      total memory for this instance. Memory must be a multiple of 256 MB and
      must be supplied in MB (e.g. 5 GB of memory is 5120 MB):
      zones/zone/machineTypes/custom-CPUS-MEMORY   For example: zones/us-
      central1-f/machineTypes/custom-4-5120   For a full list of restrictions,
      read the Specifications for custom machine types.
    metadata: The metadata key/value pairs assigned to this instance. This
      includes custom metadata and predefined keys.
    minCpuPlatform: Specifies a minimum CPU platform for the VM instance.
      Applicable values are the friendly names of CPU platforms, such as
      minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
    name: The name of the resource, provided by the client when initially
      creating the resource. The resource name must be 1-63 characters long,
      and comply with RFC1035. Specifically, the name must be 1-63 characters
      long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which
      means the first character must be a lowercase letter, and all following
      characters must be a dash, lowercase letter, or digit, except the last
      character, which cannot be a dash.
    networkInterfaces: An array of network configurations for this instance.
      These specify how interfaces are configured to interact with other
      network services, such as connecting to the internet. Multiple
      interfaces are supported per instance.
    scheduling: Sets the scheduling options for this instance.
    selfLink: [Output Only] Server-defined URL for this resource.
    serviceAccounts: A list of service accounts, with their specified scopes,
      authorized for this instance. Only one service account per VM instance
      is supported.  Service accounts generate access tokens that can be
      accessed through the metadata server and used to authenticate
      applications on the instance. See Service Accounts for more information.
    startRestricted: [Output Only] Whether a VM has been restricted for start
      because Compute Engine has detected suspicious activity.
    status: [Output Only] The status of the instance. One of the following
      values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, SUSPENDING,
      SUSPENDED, and TERMINATED.
    statusMessage: [Output Only] An optional, human-readable explanation of
      the status.
    tags: A list of tags to apply to this instance. Tags are used to identify
      valid sources or targets for network firewalls and are specified by the
      client during instance creation. The tags can be later modified by the
      setTags method. Each tag within the list must comply with RFC1035.
    zone: [Output Only] URL of the zone where the instance resides. You must
      specify this field as part of the HTTP request URL. It is not settable
      as a field in the request body.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the instance. One of the following values:
    PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED, SUSPENDING, SUSPENDED,
    and TERMINATED.

    Values:
      PROVISIONING: <no description>
      RUNNING: <no description>
      STAGING: <no description>
      STOPPED: <no description>
      STOPPING: <no description>
      SUSPENDED: <no description>
      SUSPENDING: <no description>
      TERMINATED: <no description>
    """
    PROVISIONING = 0
    RUNNING = 1
    STAGING = 2
    STOPPED = 3
    STOPPING = 4
    SUSPENDED = 5
    SUSPENDING = 6
    TERMINATED = 7

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Labels to apply to this instance. These can be later modified by the
    setLabels method.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  canIpForward = _messages.BooleanField(1)
  cpuPlatform = _messages.StringField(2)
  creationTimestamp = _messages.StringField(3)
  deletionProtection = _messages.BooleanField(4)
  description = _messages.StringField(5)
  disks = _messages.MessageField('AttachedDisk', 6, repeated=True)
  guestAccelerators = _messages.MessageField('AcceleratorConfig', 7, repeated=True)
  id = _messages.IntegerField(8, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(9, default=u'compute#instance')
  labelFingerprint = _messages.BytesField(10)
  labels = _messages.MessageField('LabelsValue', 11)
  machineType = _messages.StringField(12)
  metadata = _messages.MessageField('Metadata', 13)
  minCpuPlatform = _messages.StringField(14)
  name = _messages.StringField(15)
  networkInterfaces = _messages.MessageField('NetworkInterface', 16, repeated=True)
  scheduling = _messages.MessageField('Scheduling', 17)
  selfLink = _messages.StringField(18)
  serviceAccounts = _messages.MessageField('ServiceAccount', 19, repeated=True)
  startRestricted = _messages.BooleanField(20)
  status = _messages.EnumField('StatusValueValuesEnum', 21)
  statusMessage = _messages.StringField(22)
  tags = _messages.MessageField('Tags', 23)
  zone = _messages.StringField(24)


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

  Messages:
    ItemsValue: A list of InstancesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstancesScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#instanceAggregatedList for aggregated lists of Instance
      resources.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of InstancesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of instances.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A InstancesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('InstancesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#instanceAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InstanceGroup(_messages.Message):
  r"""InstanceGroups (== resource_for beta.instanceGroups ==) (== resource_for
  v1.instanceGroups ==) (== resource_for beta.regionInstanceGroups ==) (==
  resource_for v1.regionInstanceGroups ==)

  Fields:
    creationTimestamp: [Output Only] The creation timestamp for this instance
      group in RFC3339 text format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    fingerprint: [Output Only] The fingerprint of the named ports. The system
      uses this fingerprint to detect conflicts when multiple users change the
      named ports concurrently.
    id: [Output Only] A unique identifier for this instance group, generated
      by the server.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroup for instance groups.
    name: The name of the instance group. The name must be 1-63 characters
      long, and comply with RFC1035.
    namedPorts: Assigns a name to a port number. For example: {name: "http",
      port: 80}  This allows the system to reference ports by the assigned
      name instead of a port number. Named ports can also contain multiple
      ports. For example: [{name: "http", port: 80},{name: "http", port:
      8080}]   Named ports apply to all instances in this instance group.
    network: The URL of the network to which all instances in the instance
      group belong.
    region: [Output Only] The URL of the region where the instance group is
      located (for regional resources).
    selfLink: [Output Only] The URL for this instance group. The server
      generates this URL.
    size: [Output Only] The total number of instances in the instance group.
    subnetwork: [Output Only] The URL of the subnetwork to which all instances
      in the instance group belong.
    zone: [Output Only] The URL of the zone where the instance group is
      located (for zonal resources).
  """

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  fingerprint = _messages.BytesField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#instanceGroup')
  name = _messages.StringField(6)
  namedPorts = _messages.MessageField('NamedPort', 7, repeated=True)
  network = _messages.StringField(8)
  region = _messages.StringField(9)
  selfLink = _messages.StringField(10)
  size = _messages.IntegerField(11, variant=_messages.Variant.INT32)
  subnetwork = _messages.StringField(12)
  zone = _messages.StringField(13)


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

  Messages:
    ItemsValue: A list of InstanceGroupsScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceGroupsScopedList resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupAggregatedList for aggregated lists of instance
      groups.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of InstanceGroupsScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: The name of the scope that contains this set of
        instance groups.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A InstanceGroupsScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('InstanceGroupsScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#instanceGroupAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InstanceGroupList(_messages.Message):
  r"""A list of InstanceGroup resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceGroup resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupList for instance group lists.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceGroup', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#instanceGroupList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InstanceGroupManager(_messages.Message):
  r"""An Instance Group Manager resource. (== resource_for
  beta.instanceGroupManagers ==) (== resource_for v1.instanceGroupManagers ==)
  (== resource_for beta.regionInstanceGroupManagers ==) (== resource_for
  v1.regionInstanceGroupManagers ==)

  Fields:
    baseInstanceName: The base instance name to use for instances in this
      group. The value must be 1-58 characters long. Instances are named by
      appending a hyphen and a random four-character string to the base
      instance name. The base instance name must comply with RFC1035.
    creationTimestamp: [Output Only] The creation timestamp for this managed
      instance group in RFC3339 text format.
    currentActions: [Output Only] The list of instance actions and the number
      of instances in this managed instance group that are scheduled for each
      of those actions.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    distributionPolicy: Policy specifying intended distribution of instances
      in regional managed instance group.
    fingerprint: Fingerprint of this resource. This field may be used in
      optimistic locking. It will be ignored when inserting an
      InstanceGroupManager. An up-to-date fingerprint must be provided in
      order to update the InstanceGroupManager.  To see the latest
      fingerprint, make a get() request to retrieve an InstanceGroupManager.
    id: [Output Only] A unique identifier for this resource type. The server
      generates this identifier.
    instanceGroup: [Output Only] The URL of the Instance Group resource.
    instanceTemplate: The URL of the instance template that is specified for
      this managed instance group. The group uses this template to create all
      new instances in the managed instance group.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupManager for managed instance groups.
    name: The name of the managed instance group. The name must be 1-63
      characters long, and comply with RFC1035.
    namedPorts: Named ports configured for the Instance Groups complementary
      to this Instance Group Manager.
    region: [Output Only] The URL of the region where the managed instance
      group resides (for regional resources).
    selfLink: [Output Only] The URL for this managed instance group. The
      server defines this URL.
    targetPools: The URLs for all TargetPool resources to which instances in
      the instanceGroup field are added. The target pools automatically apply
      to all of the instances in the managed instance group.
    targetSize: The target number of running instances for this managed
      instance group. Deleting or abandoning instances reduces this number.
      Resizing the group changes this number.
    zone: [Output Only] The URL of the zone where the managed instance group
      is located (for zonal resources).
  """

  baseInstanceName = _messages.StringField(1)
  creationTimestamp = _messages.StringField(2)
  currentActions = _messages.MessageField('InstanceGroupManagerActionsSummary', 3)
  description = _messages.StringField(4)
  distributionPolicy = _messages.MessageField('DistributionPolicy', 5)
  fingerprint = _messages.BytesField(6)
  id = _messages.IntegerField(7, variant=_messages.Variant.UINT64)
  instanceGroup = _messages.StringField(8)
  instanceTemplate = _messages.StringField(9)
  kind = _messages.StringField(10, default=u'compute#instanceGroupManager')
  name = _messages.StringField(11)
  namedPorts = _messages.MessageField('NamedPort', 12, repeated=True)
  region = _messages.StringField(13)
  selfLink = _messages.StringField(14)
  targetPools = _messages.StringField(15, repeated=True)
  targetSize = _messages.IntegerField(16, variant=_messages.Variant.INT32)
  zone = _messages.StringField(17)


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

  Fields:
    abandoning: [Output Only] The total number of instances in the managed
      instance group that are scheduled to be abandoned. Abandoning an
      instance removes it from the managed instance group without deleting it.
    creating: [Output Only] The number of instances in the managed instance
      group that are scheduled to be created or are currently being created.
      If the group fails to create any of these instances, it tries again
      until it creates the instance successfully.  If you have disabled
      creation retries, this field will not be populated; instead, the
      creatingWithoutRetries field will be populated.
    creatingWithoutRetries: [Output Only] The number of instances that the
      managed instance group will attempt to create. The group attempts to
      create each instance only once. If the group fails to create any of
      these instances, it decreases the group's targetSize value accordingly.
    deleting: [Output Only] The number of instances in the managed instance
      group that are scheduled to be deleted or are currently being deleted.
    none: [Output Only] The number of instances in the managed instance group
      that are running and have no scheduled actions.
    recreating: [Output Only] The number of instances in the managed instance
      group that are scheduled to be recreated or are currently being being
      recreated. Recreating an instance deletes the existing root persistent
      disk and creates a new disk from the image that is defined in the
      instance template.
    refreshing: [Output Only] The number of instances in the managed instance
      group that are being reconfigured with properties that do not require a
      restart or a recreate action. For example, setting or removing target
      pools for the instance.
    restarting: [Output Only] The number of instances in the managed instance
      group that are scheduled to be restarted or are currently being
      restarted.
  """

  abandoning = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  creating = _messages.IntegerField(2, variant=_messages.Variant.INT32)
  creatingWithoutRetries = _messages.IntegerField(3, variant=_messages.Variant.INT32)
  deleting = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  none = _messages.IntegerField(5, variant=_messages.Variant.INT32)
  recreating = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  refreshing = _messages.IntegerField(7, variant=_messages.Variant.INT32)
  restarting = _messages.IntegerField(8, variant=_messages.Variant.INT32)


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

  Messages:
    ItemsValue: A list of InstanceGroupManagersScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceGroupManagersScopedList resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupManagerAggregatedList for an aggregated list of
      managed instance groups.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of InstanceGroupManagersScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] The name of the scope that contains
        this set of managed instance groups.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A InstanceGroupManagersScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('InstanceGroupManagersScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#instanceGroupManagerAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InstanceGroupManagerList(_messages.Message):
  r"""[Output Only] A list of managed instance groups.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceGroupManager resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupManagerList for a list of managed instance groups.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceGroupManager', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#instanceGroupManagerList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    instances: The URLs of one or more instances to abandon. This can be a
      full URL or a partial URL, such as
      zones/[ZONE]/instances/[INSTANCE_NAME].
  """

  instances = _messages.StringField(1, repeated=True)


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

  Fields:
    instances: The URLs of one or more instances to delete. This can be a full
      URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
  """

  instances = _messages.StringField(1, repeated=True)


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

  Fields:
    managedInstances: [Output Only] The list of instances in the managed
      instance group.
  """

  managedInstances = _messages.MessageField('ManagedInstance', 1, repeated=True)


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

  Fields:
    instances: The URLs of one or more instances to recreate. This can be a
      full URL or a partial URL, such as
      zones/[ZONE]/instances/[INSTANCE_NAME].
  """

  instances = _messages.StringField(1, repeated=True)


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

  Messages:
    WarningValue: [Output Only] The warning that replaces the list of managed
      instance groups when the list is empty.

  Fields:
    instanceGroupManagers: [Output Only] The list of managed instance groups
      that are contained in the specified project and zone.
    warning: [Output Only] The warning that replaces the list of managed
      instance groups when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] The warning that replaces the list of managed instance
    groups when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  instanceGroupManagers = _messages.MessageField('InstanceGroupManager', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    instanceTemplate: The URL of the instance template that is specified for
      this managed instance group. The group uses this template to create all
      new instances in the managed instance group.
  """

  instanceTemplate = _messages.StringField(1)


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

  Fields:
    fingerprint: The fingerprint of the target pools information. Use this
      optional property to prevent conflicts when multiple users change the
      target pools settings concurrently. Obtain the fingerprint with the
      instanceGroupManagers.get method. Then, include the fingerprint in your
      request to ensure that you do not overwrite changes that were applied
      from another concurrent request.
    targetPools: The list of target pool URLs that instances in this managed
      instance group belong to. The managed instance group applies these
      target pools to all of the instances in the group. Existing instances
      and new instances in the group all receive these target pool settings.
  """

  fingerprint = _messages.BytesField(1)
  targetPools = _messages.StringField(2, repeated=True)


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

  Fields:
    instances: The list of instances to add to the instance group.
  """

  instances = _messages.MessageField('InstanceReference', 1, repeated=True)


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

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceWithNamedPorts resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupsListInstances for the list of instances in the
      specified instance group.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceWithNamedPorts', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#instanceGroupsListInstances')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Enums:
    InstanceStateValueValuesEnum: A filter for the state of the instances in
      the instance group. Valid options are ALL or RUNNING. If you do not
      specify this parameter the list includes all instances regardless of
      their state.

  Fields:
    instanceState: A filter for the state of the instances in the instance
      group. Valid options are ALL or RUNNING. If you do not specify this
      parameter the list includes all instances regardless of their state.
  """

  class InstanceStateValueValuesEnum(_messages.Enum):
    r"""A filter for the state of the instances in the instance group. Valid
    options are ALL or RUNNING. If you do not specify this parameter the list
    includes all instances regardless of their state.

    Values:
      ALL: <no description>
      RUNNING: <no description>
    """
    ALL = 0
    RUNNING = 1

  instanceState = _messages.EnumField('InstanceStateValueValuesEnum', 1)


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

  Fields:
    instances: The list of instances to remove from the instance group.
  """

  instances = _messages.MessageField('InstanceReference', 1, repeated=True)


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

  Messages:
    WarningValue: [Output Only] An informational warning that replaces the
      list of instance groups when the list is empty.

  Fields:
    instanceGroups: [Output Only] The list of instance groups that are
      contained in this scope.
    warning: [Output Only] An informational warning that replaces the list of
      instance groups when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] An informational warning that replaces the list of
    instance groups when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  instanceGroups = _messages.MessageField('InstanceGroup', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    fingerprint: The fingerprint of the named ports information for this
      instance group. Use this optional property to prevent conflicts when
      multiple users change the named ports settings concurrently. Obtain the
      fingerprint with the instanceGroups.get method. Then, include the
      fingerprint in your request to ensure that you do not overwrite changes
      that were applied from another concurrent request.
    namedPorts: The list of named ports to set for this instance group.
  """

  fingerprint = _messages.BytesField(1)
  namedPorts = _messages.MessageField('NamedPort', 2, repeated=True)


class InstanceList(_messages.Message):
  r"""Contains a list of instances.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Instance resources.
    kind: [Output Only] Type of resource. Always compute#instanceList for
      lists of Instance resources.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Instance', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#instanceList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InstanceListReferrers(_messages.Message):
  r"""Contains a list of instance referrers.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Reference resources.
    kind: [Output Only] Type of resource. Always compute#instanceListReferrers
      for lists of Instance referrers.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Reference', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#instanceListReferrers')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    destinationZone: The URL of the destination zone to move the instance.
      This can be a full or partial URL. For example, the following are all
      valid URLs to a zone:   -
      https://www.googleapis.com/compute/v1/projects/project/zones/zone  -
      projects/project/zones/zone  - zones/zone
    targetInstance: The URL of the target instance to move. This can be a full
      or partial URL. For example, the following are all valid URLs to an
      instance:   - https://www.googleapis.com/compute/v1/projects/project/zon
      es/zone/instances/instance  -
      projects/project/zones/zone/instances/instance  -
      zones/zone/instances/instance
  """

  destinationZone = _messages.StringField(1)
  targetInstance = _messages.StringField(2)


class InstanceProperties(_messages.Message):
  r"""InstanceProperties message type.

  Messages:
    LabelsValue: Labels to apply to instances that are created from this
      template.

  Fields:
    canIpForward: Enables instances created based on this template to send
      packets with source IP addresses other than their own and receive
      packets with destination IP addresses other than their own. If these
      instances will be used as an IP gateway or it will be set as the next-
      hop in a Route resource, specify true. If unsure, leave this set to
      false. See the Enable IP forwarding documentation for more information.
    description: An optional text description for the instances that are
      created from this instance template.
    disks: An array of disks that are associated with the instances that are
      created from this template.
    guestAccelerators: A list of guest accelerator cards' type and count to
      use for instances created from the instance template.
    labels: Labels to apply to instances that are created from this template.
    machineType: The machine type to use for instances that are created from
      this template.
    metadata: The metadata key/value pairs to assign to instances that are
      created from this template. These pairs can consist of custom metadata
      or predefined keys. See Project and instance metadata for more
      information.
    minCpuPlatform: Minimum cpu/platform to be used by this instance. The
      instance may be scheduled on the specified or newer cpu/platform.
      Applicable values are the friendly names of CPU platforms, such as
      minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy Bridge".
      For more information, read Specifying a Minimum CPU Platform.
    networkInterfaces: An array of network access configurations for this
      interface.
    scheduling: Specifies the scheduling options for the instances that are
      created from this template.
    serviceAccounts: A list of service accounts with specified scopes. Access
      tokens for these service accounts are available to the instances that
      are created from this template. Use metadata queries to obtain the
      access tokens for these instances.
    tags: A list of tags to apply to the instances that are created from this
      template. The tags identify valid sources or targets for network
      firewalls. The setTags method can modify this list of tags. Each tag
      within the list must comply with RFC1035.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Labels to apply to instances that are created from this template.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  canIpForward = _messages.BooleanField(1)
  description = _messages.StringField(2)
  disks = _messages.MessageField('AttachedDisk', 3, repeated=True)
  guestAccelerators = _messages.MessageField('AcceleratorConfig', 4, repeated=True)
  labels = _messages.MessageField('LabelsValue', 5)
  machineType = _messages.StringField(6)
  metadata = _messages.MessageField('Metadata', 7)
  minCpuPlatform = _messages.StringField(8)
  networkInterfaces = _messages.MessageField('NetworkInterface', 9, repeated=True)
  scheduling = _messages.MessageField('Scheduling', 10)
  serviceAccounts = _messages.MessageField('ServiceAccount', 11, repeated=True)
  tags = _messages.MessageField('Tags', 12)


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

  Fields:
    instance: The URL for a specific instance.
  """

  instance = _messages.StringField(1)


class InstanceTemplate(_messages.Message):
  r"""An Instance Template resource. (== resource_for beta.instanceTemplates
  ==) (== resource_for v1.instanceTemplates ==)

  Fields:
    creationTimestamp: [Output Only] The creation timestamp for this instance
      template in RFC3339 text format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] A unique identifier for this instance template. The
      server defines this identifier.
    kind: [Output Only] The resource type, which is always
      compute#instanceTemplate for instance templates.
    name: Name of the resource; provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    properties: The instance properties for this instance template.
    selfLink: [Output Only] The URL for this instance template. The server
      defines this URL.
    sourceInstance: The source instance used to create the template. You can
      provide this as a partial or full URL to the resource. For example, the
      following are valid values:   - https://www.googleapis.com/compute/v1/pr
      ojects/project/zones/zone/instances/instance  -
      projects/project/zones/zone/instances/instance
    sourceInstanceParams: The source instance params to use to create this
      instance template.
  """

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(4, default=u'compute#instanceTemplate')
  name = _messages.StringField(5)
  properties = _messages.MessageField('InstanceProperties', 6)
  selfLink = _messages.StringField(7)
  sourceInstance = _messages.StringField(8)
  sourceInstanceParams = _messages.MessageField('SourceInstanceParams', 9)


class InstanceTemplateList(_messages.Message):
  r"""A list of instance templates.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceTemplate resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceTemplatesListResponse for instance template lists.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceTemplate', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#instanceTemplateList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the instance.

  Fields:
    instance: [Output Only] The URL of the instance.
    namedPorts: [Output Only] The named ports that belong to this instance
      group.
    status: [Output Only] The status of the instance.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the instance.

    Values:
      PROVISIONING: <no description>
      RUNNING: <no description>
      STAGING: <no description>
      STOPPED: <no description>
      STOPPING: <no description>
      SUSPENDED: <no description>
      SUSPENDING: <no description>
      TERMINATED: <no description>
    """
    PROVISIONING = 0
    RUNNING = 1
    STAGING = 2
    STOPPED = 3
    STOPPING = 4
    SUSPENDED = 5
    SUSPENDING = 6
    TERMINATED = 7

  instance = _messages.StringField(1)
  namedPorts = _messages.MessageField('NamedPort', 2, repeated=True)
  status = _messages.EnumField('StatusValueValuesEnum', 3)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of instances when the list is empty.

  Fields:
    instances: [Output Only] A list of instances contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      instances when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of
    instances when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  instances = _messages.MessageField('Instance', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Messages:
    LabelsValue: A LabelsValue object.

  Fields:
    labelFingerprint: Fingerprint of the previous set of labels for this
      resource, used to prevent conflicts. Provide the latest fingerprint
      value when making a request to add or change labels.
    labels: A LabelsValue attribute.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""A LabelsValue object.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  labelFingerprint = _messages.BytesField(1)
  labels = _messages.MessageField('LabelsValue', 2)


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

  Fields:
    guestAccelerators: A list of the type and count of accelerator cards
      attached to the instance.
  """

  guestAccelerators = _messages.MessageField('AcceleratorConfig', 1, repeated=True)


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

  Fields:
    machineType: Full or partial URL of the machine type resource. See Machine
      Types for a full list of machine types. For example: zones/us-
      central1-f/machineTypes/n1-standard-1
  """

  machineType = _messages.StringField(1)


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

  Fields:
    minCpuPlatform: Minimum cpu/platform this instance should be started at.
  """

  minCpuPlatform = _messages.StringField(1)


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

  Fields:
    email: Email address of the service account.
    scopes: The list of scopes to be made available for this service account.
  """

  email = _messages.StringField(1)
  scopes = _messages.StringField(2, repeated=True)


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

  Fields:
    disks: Array of disks associated with this instance that are protected
      with a customer-supplied encryption key.  In order to start the
      instance, the disk url and its corresponding key must be provided.  If
      the disk is not protected with a customer-supplied encryption key it
      should not be specified.
  """

  disks = _messages.MessageField('CustomerEncryptionKeyProtectedDisk', 1, repeated=True)


class Interconnect(_messages.Message):
  r"""Represents an Interconnects resource. The Interconnects resource is a
  dedicated connection between Google's network and your on-premises network.
  For more information, see the  Dedicated overview page. (== resource_for
  v1.interconnects ==) (== resource_for beta.interconnects ==)

  Enums:
    InterconnectTypeValueValuesEnum: Type of interconnect. Note that
      "IT_PRIVATE" has been deprecated in favor of "DEDICATED"
    LinkTypeValueValuesEnum: Type of link requested. This field indicates
      speed of each of the links in the bundle, not the entire bundle. Only
      10G per link is allowed for a dedicated interconnect. Options:
      Ethernet_10G_LR
    OperationalStatusValueValuesEnum: [Output Only] The current status of
      whether or not this Interconnect is functional.
    StateValueValuesEnum: [Output Only] The current state of whether or not
      this Interconnect is functional.

  Fields:
    adminEnabled: Administrative status of the interconnect. When this is set
      to true, the Interconnect is functional and can carry traffic. When set
      to false, no packets can be carried over the interconnect and no BGP
      routes are exchanged over it. By default, the status is set to true.
    circuitInfos: [Output Only] A list of CircuitInfo objects, that describe
      the individual circuits in this LAG.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    customerName: Customer name, to put in the Letter of Authorization as the
      party authorized to request a crossconnect.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    expectedOutages: [Output Only] A list of outages expected for this
      Interconnect.
    googleIpAddress: [Output Only] IP address configured on the Google side of
      the Interconnect link. This can be used only for ping tests.
    googleReferenceId: [Output Only] Google reference ID; to be used when
      raising support tickets with Google or otherwise to debug backend
      connectivity issues.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    interconnectAttachments: [Output Only] A list of the URLs of all
      InterconnectAttachments configured to use this Interconnect.
    interconnectType: Type of interconnect. Note that "IT_PRIVATE" has been
      deprecated in favor of "DEDICATED"
    kind: [Output Only] Type of the resource. Always compute#interconnect for
      interconnects.
    linkType: Type of link requested. This field indicates speed of each of
      the links in the bundle, not the entire bundle. Only 10G per link is
      allowed for a dedicated interconnect. Options: Ethernet_10G_LR
    location: URL of the InterconnectLocation object that represents where
      this connection is to be provisioned.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    nocContactEmail: Email address to contact the customer NOC for operations
      and maintenance notifications regarding this Interconnect. If specified,
      this will be used for notifications in addition to all other forms
      described, such as Stackdriver logs alerting and Cloud Notifications.
    operationalStatus: [Output Only] The current status of whether or not this
      Interconnect is functional.
    peerIpAddress: [Output Only] IP address configured on the customer side of
      the Interconnect link. The customer should configure this IP address
      during turnup when prompted by Google NOC. This can be used only for
      ping tests.
    provisionedLinkCount: [Output Only] Number of links actually provisioned
      in this interconnect.
    requestedLinkCount: Target number of physical links in the link bundle, as
      requested by the customer.
    selfLink: [Output Only] Server-defined URL for the resource.
    state: [Output Only] The current state of whether or not this Interconnect
      is functional.
  """

  class InterconnectTypeValueValuesEnum(_messages.Enum):
    r"""Type of interconnect. Note that "IT_PRIVATE" has been deprecated in
    favor of "DEDICATED"

    Values:
      DEDICATED: <no description>
      IT_PRIVATE: <no description>
      PARTNER: <no description>
    """
    DEDICATED = 0
    IT_PRIVATE = 1
    PARTNER = 2

  class LinkTypeValueValuesEnum(_messages.Enum):
    r"""Type of link requested. This field indicates speed of each of the
    links in the bundle, not the entire bundle. Only 10G per link is allowed
    for a dedicated interconnect. Options: Ethernet_10G_LR

    Values:
      LINK_TYPE_ETHERNET_10G_LR: <no description>
    """
    LINK_TYPE_ETHERNET_10G_LR = 0

  class OperationalStatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The current status of whether or not this Interconnect
    is functional.

    Values:
      OS_ACTIVE: <no description>
      OS_UNPROVISIONED: <no description>
    """
    OS_ACTIVE = 0
    OS_UNPROVISIONED = 1

  class StateValueValuesEnum(_messages.Enum):
    r"""[Output Only] The current state of whether or not this Interconnect is
    functional.

    Values:
      ACTIVE: <no description>
      UNPROVISIONED: <no description>
    """
    ACTIVE = 0
    UNPROVISIONED = 1

  adminEnabled = _messages.BooleanField(1)
  circuitInfos = _messages.MessageField('InterconnectCircuitInfo', 2, repeated=True)
  creationTimestamp = _messages.StringField(3)
  customerName = _messages.StringField(4)
  description = _messages.StringField(5)
  expectedOutages = _messages.MessageField('InterconnectOutageNotification', 6, repeated=True)
  googleIpAddress = _messages.StringField(7)
  googleReferenceId = _messages.StringField(8)
  id = _messages.IntegerField(9, variant=_messages.Variant.UINT64)
  interconnectAttachments = _messages.StringField(10, repeated=True)
  interconnectType = _messages.EnumField('InterconnectTypeValueValuesEnum', 11)
  kind = _messages.StringField(12, default=u'compute#interconnect')
  linkType = _messages.EnumField('LinkTypeValueValuesEnum', 13)
  location = _messages.StringField(14)
  name = _messages.StringField(15)
  nocContactEmail = _messages.StringField(16)
  operationalStatus = _messages.EnumField('OperationalStatusValueValuesEnum', 17)
  peerIpAddress = _messages.StringField(18)
  provisionedLinkCount = _messages.IntegerField(19, variant=_messages.Variant.INT32)
  requestedLinkCount = _messages.IntegerField(20, variant=_messages.Variant.INT32)
  selfLink = _messages.StringField(21)
  state = _messages.EnumField('StateValueValuesEnum', 22)


class InterconnectAttachment(_messages.Message):
  r"""Represents an InterconnectAttachment (VLAN attachment) resource. For
  more information, see  Creating VLAN Attachments. (== resource_for
  beta.interconnectAttachments ==) (== resource_for v1.interconnectAttachments
  ==)

  Enums:
    BandwidthValueValuesEnum: Provisioned bandwidth capacity for the
      interconnectAttachment. Can be set by the partner to update the
      customer's provisioned bandwidth. Output only for for PARTNER type,
      mutable for PARTNER_PROVIDER, not available for DEDICATED.
    EdgeAvailabilityDomainValueValuesEnum: Desired availability domain for the
      attachment. Only available for type PARTNER, at creation time. For
      improved reliability, customers should configure a pair of attachments
      with one per availability domain. The selected availability domain will
      be provided to the Partner via the pairing key so that the provisioned
      circuit will lie in the specified domain. If not specified, the value
      will default to AVAILABILITY_DOMAIN_ANY.
    OperationalStatusValueValuesEnum: [Output Only] The current status of
      whether or not this interconnect attachment is functional.
    StateValueValuesEnum: [Output Only] The current state of this attachment's
      functionality.
    TypeValueValuesEnum:

  Fields:
    adminEnabled: Determines whether this Attachment will carry packets. Not
      present for PARTNER_PROVIDER.
    bandwidth: Provisioned bandwidth capacity for the interconnectAttachment.
      Can be set by the partner to update the customer's provisioned
      bandwidth. Output only for for PARTNER type, mutable for
      PARTNER_PROVIDER, not available for DEDICATED.
    candidateSubnets: Up to 16 candidate prefixes that can be used to restrict
      the allocation of cloudRouterIpAddress and customerRouterIpAddress for
      this attachment. All prefixes must be within link-local address space
      (169.254.0.0/16) and must be /29 or shorter (/28, /27, etc). Google will
      attempt to select an unused /29 from the supplied candidate prefix(es).
      The request will fail if all possible /29s are in use on Google?s edge.
      If not supplied, Google will randomly select an unused /29 from all of
      link-local space.
    cloudRouterIpAddress: [Output Only] IPv4 address + prefix length to be
      configured on Cloud Router Interface for this interconnect attachment.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    customerRouterIpAddress: [Output Only] IPv4 address + prefix length to be
      configured on the customer router subinterface for this interconnect
      attachment.
    description: An optional description of this resource.
    edgeAvailabilityDomain: Desired availability domain for the attachment.
      Only available for type PARTNER, at creation time. For improved
      reliability, customers should configure a pair of attachments with one
      per availability domain. The selected availability domain will be
      provided to the Partner via the pairing key so that the provisioned
      circuit will lie in the specified domain. If not specified, the value
      will default to AVAILABILITY_DOMAIN_ANY.
    googleReferenceId: [Output Only] Google reference ID, to be used when
      raising support tickets with Google or otherwise to debug backend
      connectivity issues.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    interconnect: URL of the underlying Interconnect object that this
      attachment's traffic will traverse through.
    kind: [Output Only] Type of the resource. Always
      compute#interconnectAttachment for interconnect attachments.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    operationalStatus: [Output Only] The current status of whether or not this
      interconnect attachment is functional.
    pairingKey: [Output only for type PARTNER. Input only for
      PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier of
      an PARTNER attachment used to initiate provisioning with a selected
      partner. Of the form "XXXXX/region/domain"
    partnerAsn: Optional BGP ASN for the router that should be supplied by a
      layer 3 Partner if they configured BGP on behalf of the customer. Output
      only for PARTNER type, input only for PARTNER_PROVIDER, not available
      for DEDICATED.
    partnerMetadata: Informational metadata about Partner attachments from
      Partners to display to customers. Output only for for PARTNER type,
      mutable for PARTNER_PROVIDER, not available for DEDICATED.
    privateInterconnectInfo: [Output Only] Information specific to an
      InterconnectAttachment. This property is populated if the interconnect
      that this is attached to is of type DEDICATED.
    region: [Output Only] URL of the region where the regional interconnect
      attachment resides. You must specify this field as part of the HTTP
      request URL. It is not settable as a field in the request body.
    router: URL of the cloud router to be used for dynamic routing. This
      router must be in the same region as this InterconnectAttachment. The
      InterconnectAttachment will automatically connect the Interconnect to
      the network & region within which the Cloud Router is configured.
    selfLink: [Output Only] Server-defined URL for the resource.
    state: [Output Only] The current state of this attachment's functionality.
    type: A TypeValueValuesEnum attribute.
    vlanTag8021q: Available only for DEDICATED and PARTNER_PROVIDER. Desired
      VLAN tag for this attachment, in the range 2-4094. This field refers to
      802.1q VLAN tag, also known as IEEE 802.1Q Only specified at creation
      time.
  """

  class BandwidthValueValuesEnum(_messages.Enum):
    r"""Provisioned bandwidth capacity for the interconnectAttachment. Can be
    set by the partner to update the customer's provisioned bandwidth. Output
    only for for PARTNER type, mutable for PARTNER_PROVIDER, not available for
    DEDICATED.

    Values:
      BPS_100M: <no description>
      BPS_10G: <no description>
      BPS_1G: <no description>
      BPS_200M: <no description>
      BPS_2G: <no description>
      BPS_300M: <no description>
      BPS_400M: <no description>
      BPS_500M: <no description>
      BPS_50M: <no description>
      BPS_5G: <no description>
    """
    BPS_100M = 0
    BPS_10G = 1
    BPS_1G = 2
    BPS_200M = 3
    BPS_2G = 4
    BPS_300M = 5
    BPS_400M = 6
    BPS_500M = 7
    BPS_50M = 8
    BPS_5G = 9

  class EdgeAvailabilityDomainValueValuesEnum(_messages.Enum):
    r"""Desired availability domain for the attachment. Only available for
    type PARTNER, at creation time. For improved reliability, customers should
    configure a pair of attachments with one per availability domain. The
    selected availability domain will be provided to the Partner via the
    pairing key so that the provisioned circuit will lie in the specified
    domain. If not specified, the value will default to
    AVAILABILITY_DOMAIN_ANY.

    Values:
      AVAILABILITY_DOMAIN_1: <no description>
      AVAILABILITY_DOMAIN_2: <no description>
      AVAILABILITY_DOMAIN_ANY: <no description>
    """
    AVAILABILITY_DOMAIN_1 = 0
    AVAILABILITY_DOMAIN_2 = 1
    AVAILABILITY_DOMAIN_ANY = 2

  class OperationalStatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The current status of whether or not this interconnect
    attachment is functional.

    Values:
      OS_ACTIVE: <no description>
      OS_UNPROVISIONED: <no description>
    """
    OS_ACTIVE = 0
    OS_UNPROVISIONED = 1

  class StateValueValuesEnum(_messages.Enum):
    r"""[Output Only] The current state of this attachment's functionality.

    Values:
      ACTIVE: <no description>
      DEFUNCT: <no description>
      PARTNER_REQUEST_RECEIVED: <no description>
      PENDING_CUSTOMER: <no description>
      PENDING_PARTNER: <no description>
      STATE_UNSPECIFIED: <no description>
      UNPROVISIONED: <no description>
    """
    ACTIVE = 0
    DEFUNCT = 1
    PARTNER_REQUEST_RECEIVED = 2
    PENDING_CUSTOMER = 3
    PENDING_PARTNER = 4
    STATE_UNSPECIFIED = 5
    UNPROVISIONED = 6

  class TypeValueValuesEnum(_messages.Enum):
    r"""TypeValueValuesEnum enum type.

    Values:
      DEDICATED: <no description>
      PARTNER: <no description>
      PARTNER_PROVIDER: <no description>
    """
    DEDICATED = 0
    PARTNER = 1
    PARTNER_PROVIDER = 2

  adminEnabled = _messages.BooleanField(1)
  bandwidth = _messages.EnumField('BandwidthValueValuesEnum', 2)
  candidateSubnets = _messages.StringField(3, repeated=True)
  cloudRouterIpAddress = _messages.StringField(4)
  creationTimestamp = _messages.StringField(5)
  customerRouterIpAddress = _messages.StringField(6)
  description = _messages.StringField(7)
  edgeAvailabilityDomain = _messages.EnumField('EdgeAvailabilityDomainValueValuesEnum', 8)
  googleReferenceId = _messages.StringField(9)
  id = _messages.IntegerField(10, variant=_messages.Variant.UINT64)
  interconnect = _messages.StringField(11)
  kind = _messages.StringField(12, default=u'compute#interconnectAttachment')
  name = _messages.StringField(13)
  operationalStatus = _messages.EnumField('OperationalStatusValueValuesEnum', 14)
  pairingKey = _messages.StringField(15)
  partnerAsn = _messages.IntegerField(16)
  partnerMetadata = _messages.MessageField('InterconnectAttachmentPartnerMetadata', 17)
  privateInterconnectInfo = _messages.MessageField('InterconnectAttachmentPrivateInfo', 18)
  region = _messages.StringField(19)
  router = _messages.StringField(20)
  selfLink = _messages.StringField(21)
  state = _messages.EnumField('StateValueValuesEnum', 22)
  type = _messages.EnumField('TypeValueValuesEnum', 23)
  vlanTag8021q = _messages.IntegerField(24, variant=_messages.Variant.INT32)


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

  Messages:
    ItemsValue: A list of InterconnectAttachmentsScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InterconnectAttachmentsScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#interconnectAttachmentAggregatedList for aggregated lists of
      interconnect attachments.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of InterconnectAttachmentsScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of
        interconnect attachments.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A InterconnectAttachmentsScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('InterconnectAttachmentsScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#interconnectAttachmentAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InterconnectAttachmentList(_messages.Message):
  r"""Response to the list request, and contains a list of interconnect
  attachments.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InterconnectAttachment resources.
    kind: [Output Only] Type of resource. Always
      compute#interconnectAttachmentList for lists of interconnect
      attachments.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InterconnectAttachment', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#interconnectAttachmentList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InterconnectAttachmentPartnerMetadata(_messages.Message):
  r"""Informational metadata about Partner attachments from Partners to
  display to customers. These fields are propagated from PARTNER_PROVIDER
  attachments to their corresponding PARTNER attachments.

  Fields:
    interconnectName: Plain text name of the Interconnect this attachment is
      connected to, as displayed in the Partner?s portal. For instance
      ?Chicago 1?. This value may be validated to match approved Partner
      values.
    partnerName: Plain text name of the Partner providing this attachment.
      This value may be validated to match approved Partner values.
    portalUrl: URL of the Partner?s portal for this Attachment. Partners may
      customise this to be a deep-link to the specific resource on the Partner
      portal. This value may be validated to match approved Partner values.
  """

  interconnectName = _messages.StringField(1)
  partnerName = _messages.StringField(2)
  portalUrl = _messages.StringField(3)


class InterconnectAttachmentPrivateInfo(_messages.Message):
  r"""Information for an interconnect attachment when this belongs to an
  interconnect of type DEDICATED.

  Fields:
    tag8021q: [Output Only] 802.1q encapsulation tag to be used for traffic
      between Google and the customer, going to and from this network and
      region.
  """

  tag8021q = _messages.IntegerField(1, variant=_messages.Variant.UINT32)


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

  Messages:
    WarningValue: Informational warning which replaces the list of addresses
      when the list is empty.

  Fields:
    interconnectAttachments: A list of interconnect attachments contained in
      this scope.
    warning: Informational warning which replaces the list of addresses when
      the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of addresses when the
    list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  interconnectAttachments = _messages.MessageField('InterconnectAttachment', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class InterconnectCircuitInfo(_messages.Message):
  r"""Describes a single physical circuit between the Customer and Google.
  CircuitInfo objects are created by Google, so all fields are output only.
  Next id: 4

  Fields:
    customerDemarcId: Customer-side demarc ID for this circuit.
    googleCircuitId: Google-assigned unique ID for this circuit. Assigned at
      circuit turn-up.
    googleDemarcId: Google-side demarc ID for this circuit. Assigned at
      circuit turn-up and provided by Google to the customer in the LOA.
  """

  customerDemarcId = _messages.StringField(1)
  googleCircuitId = _messages.StringField(2)
  googleDemarcId = _messages.StringField(3)


class InterconnectList(_messages.Message):
  r"""Response to the list request, and contains a list of interconnects.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Interconnect resources.
    kind: [Output Only] Type of resource. Always compute#interconnectList for
      lists of interconnects.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Interconnect', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#interconnectList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InterconnectLocation(_messages.Message):
  r"""Represents an InterconnectLocations resource. The InterconnectLocations
  resource describes the locations where you can connect to Google's networks.
  For more information, see  Colocation Facilities.

  Enums:
    ContinentValueValuesEnum: [Output Only] Continent for this location.

  Fields:
    address: [Output Only] The postal address of the Point of Presence, each
      line in the address is separated by a newline character.
    availabilityZone: [Output Only] Availability zone for this location.
      Within a metropolitan area (metro), maintenance will not be
      simultaneously scheduled in more than one availability zone. Example:
      "zone1" or "zone2".
    city: [Output Only] Metropolitan area designator that indicates which city
      an interconnect is located. For example: "Chicago, IL", "Amsterdam,
      Netherlands".
    continent: [Output Only] Continent for this location.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: [Output Only] An optional description of the resource.
    facilityProvider: [Output Only] The name of the provider for this facility
      (e.g., EQUINIX).
    facilityProviderFacilityId: [Output Only] A provider-assigned Identifier
      for this facility (e.g., Ashburn-DC1).
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always
      compute#interconnectLocation for interconnect locations.
    name: [Output Only] Name of the resource.
    peeringdbFacilityId: [Output Only] The peeringdb identifier for this
      facility (corresponding with a netfac type in peeringdb).
    regionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
      objects, that describe parameters pertaining to the relation between
      this InterconnectLocation and various Google Cloud regions.
    selfLink: [Output Only] Server-defined URL for the resource.
  """

  class ContinentValueValuesEnum(_messages.Enum):
    r"""[Output Only] Continent for this location.

    Values:
      AFRICA: <no description>
      ASIA_PAC: <no description>
      C_AFRICA: <no description>
      C_ASIA_PAC: <no description>
      C_EUROPE: <no description>
      C_NORTH_AMERICA: <no description>
      C_SOUTH_AMERICA: <no description>
      EUROPE: <no description>
      NORTH_AMERICA: <no description>
      SOUTH_AMERICA: <no description>
    """
    AFRICA = 0
    ASIA_PAC = 1
    C_AFRICA = 2
    C_ASIA_PAC = 3
    C_EUROPE = 4
    C_NORTH_AMERICA = 5
    C_SOUTH_AMERICA = 6
    EUROPE = 7
    NORTH_AMERICA = 8
    SOUTH_AMERICA = 9

  address = _messages.StringField(1)
  availabilityZone = _messages.StringField(2)
  city = _messages.StringField(3)
  continent = _messages.EnumField('ContinentValueValuesEnum', 4)
  creationTimestamp = _messages.StringField(5)
  description = _messages.StringField(6)
  facilityProvider = _messages.StringField(7)
  facilityProviderFacilityId = _messages.StringField(8)
  id = _messages.IntegerField(9, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(10, default=u'compute#interconnectLocation')
  name = _messages.StringField(11)
  peeringdbFacilityId = _messages.StringField(12)
  regionInfos = _messages.MessageField('InterconnectLocationRegionInfo', 13, repeated=True)
  selfLink = _messages.StringField(14)


class InterconnectLocationList(_messages.Message):
  r"""Response to the list request, and contains a list of interconnect
  locations.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InterconnectLocation resources.
    kind: [Output Only] Type of resource. Always
      compute#interconnectLocationList for lists of interconnect locations.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InterconnectLocation', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#interconnectLocationList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class InterconnectLocationRegionInfo(_messages.Message):
  r"""Information about any potential InterconnectAttachments between an
  Interconnect at a specific InterconnectLocation, and a specific Cloud
  Region.

  Enums:
    LocationPresenceValueValuesEnum: Identifies the network presence of this
      location.

  Fields:
    expectedRttMs: Expected round-trip time in milliseconds, from this
      InterconnectLocation to a VM in this region.
    locationPresence: Identifies the network presence of this location.
    region: URL for the region of this location.
  """

  class LocationPresenceValueValuesEnum(_messages.Enum):
    r"""Identifies the network presence of this location.

    Values:
      GLOBAL: <no description>
      LOCAL_REGION: <no description>
      LP_GLOBAL: <no description>
      LP_LOCAL_REGION: <no description>
    """
    GLOBAL = 0
    LOCAL_REGION = 1
    LP_GLOBAL = 2
    LP_LOCAL_REGION = 3

  expectedRttMs = _messages.IntegerField(1)
  locationPresence = _messages.EnumField('LocationPresenceValueValuesEnum', 2)
  region = _messages.StringField(3)


class InterconnectOutageNotification(_messages.Message):
  r"""Description of a planned outage on this Interconnect. Next id: 9

  Enums:
    IssueTypeValueValuesEnum: Form this outage is expected to take. Note that
      the "IT_" versions of this enum have been deprecated in favor of the
      unprefixed values.
    SourceValueValuesEnum: The party that generated this notification. Note
      that "NSRC_GOOGLE" has been deprecated in favor of "GOOGLE"
    StateValueValuesEnum: State of this notification. Note that the "NS_"
      versions of this enum have been deprecated in favor of the unprefixed
      values.

  Fields:
    affectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
      Google-side circuit IDs that will be affected.
    description: A description about the purpose of the outage.
    endTime: Scheduled end time for the outage (milliseconds since Unix
      epoch).
    issueType: Form this outage is expected to take. Note that the "IT_"
      versions of this enum have been deprecated in favor of the unprefixed
      values.
    name: Unique identifier for this outage notification.
    source: The party that generated this notification. Note that
      "NSRC_GOOGLE" has been deprecated in favor of "GOOGLE"
    startTime: Scheduled start time for the outage (milliseconds since Unix
      epoch).
    state: State of this notification. Note that the "NS_" versions of this
      enum have been deprecated in favor of the unprefixed values.
  """

  class IssueTypeValueValuesEnum(_messages.Enum):
    r"""Form this outage is expected to take. Note that the "IT_" versions of
    this enum have been deprecated in favor of the unprefixed values.

    Values:
      IT_OUTAGE: <no description>
      IT_PARTIAL_OUTAGE: <no description>
      OUTAGE: <no description>
      PARTIAL_OUTAGE: <no description>
    """
    IT_OUTAGE = 0
    IT_PARTIAL_OUTAGE = 1
    OUTAGE = 2
    PARTIAL_OUTAGE = 3

  class SourceValueValuesEnum(_messages.Enum):
    r"""The party that generated this notification. Note that "NSRC_GOOGLE"
    has been deprecated in favor of "GOOGLE"

    Values:
      GOOGLE: <no description>
      NSRC_GOOGLE: <no description>
    """
    GOOGLE = 0
    NSRC_GOOGLE = 1

  class StateValueValuesEnum(_messages.Enum):
    r"""State of this notification. Note that the "NS_" versions of this enum
    have been deprecated in favor of the unprefixed values.

    Values:
      ACTIVE: <no description>
      CANCELLED: <no description>
      NS_ACTIVE: <no description>
      NS_CANCELED: <no description>
    """
    ACTIVE = 0
    CANCELLED = 1
    NS_ACTIVE = 2
    NS_CANCELED = 3

  affectedCircuits = _messages.StringField(1, repeated=True)
  description = _messages.StringField(2)
  endTime = _messages.IntegerField(3)
  issueType = _messages.EnumField('IssueTypeValueValuesEnum', 4)
  name = _messages.StringField(5)
  source = _messages.EnumField('SourceValueValuesEnum', 6)
  startTime = _messages.IntegerField(7)
  state = _messages.EnumField('StateValueValuesEnum', 8)


class License(_messages.Message):
  r"""A license resource.

  Fields:
    chargesUseFee: [Output Only] Deprecated. This field no longer reflects
      whether a license charges a usage fee.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional textual description of the resource; provided by
      the client when the resource is created.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of resource. Always compute#license for licenses.
    licenseCode: [Output Only] The unique code used to attach this license to
      images, snapshots, and disks.
    name: [Output Only] Name of the resource. The name is 1-63 characters long
      and complies with RFC1035.
    resourceRequirements: A LicenseResourceRequirements attribute.
    selfLink: [Output Only] Server-defined URL for the resource.
    transferable: If false, licenses will not be copied from the source
      resource when creating an image from a disk, disk from snapshot, or
      snapshot from disk.
  """

  chargesUseFee = _messages.BooleanField(1)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#license')
  licenseCode = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  name = _messages.StringField(7)
  resourceRequirements = _messages.MessageField('LicenseResourceRequirements', 8)
  selfLink = _messages.StringField(9)
  transferable = _messages.BooleanField(10)


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

  Enums:
    StateValueValuesEnum: [Output Only] Current state of this License Code.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: [Output Only] Description of this License Code.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of resource. Always compute#licenseCode for
      licenses.
    licenseAlias: [Output Only] URL and description aliases of Licenses with
      the same License Code.
    name: [Output Only] Name of the resource. The name is 1-20 characters long
      and must be a valid 64 bit integer.
    selfLink: [Output Only] Server-defined URL for the resource.
    state: [Output Only] Current state of this License Code.
    transferable: [Output Only] If true, the license will remain attached when
      creating images or snapshots from disks. Otherwise, the license is not
      transferred.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""[Output Only] Current state of this License Code.

    Values:
      DISABLED: <no description>
      ENABLED: <no description>
      RESTRICTED: <no description>
      STATE_UNSPECIFIED: <no description>
      TERMINATED: <no description>
    """
    DISABLED = 0
    ENABLED = 1
    RESTRICTED = 2
    STATE_UNSPECIFIED = 3
    TERMINATED = 4

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(4, default=u'compute#licenseCode')
  licenseAlias = _messages.MessageField('LicenseCodeLicenseAlias', 5, repeated=True)
  name = _messages.StringField(6)
  selfLink = _messages.StringField(7)
  state = _messages.EnumField('StateValueValuesEnum', 8)
  transferable = _messages.BooleanField(9)


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

  Fields:
    description: [Output Only] Description of this License Code.
    selfLink: [Output Only] URL of license corresponding to this License Code.
  """

  description = _messages.StringField(1)
  selfLink = _messages.StringField(2)


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

  Fields:
    minGuestCpuCount: Minimum number of guest cpus required to use the
      Instance. Enforced at Instance creation and Instance start.
    minMemoryMb: Minimum memory required to use the Instance. Enforced at
      Instance creation and Instance start.
  """

  minGuestCpuCount = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  minMemoryMb = _messages.IntegerField(2, variant=_messages.Variant.INT32)


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

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of License resources.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('License', 2, repeated=True)
  nextPageToken = _messages.StringField(3)
  selfLink = _messages.StringField(4)
  warning = _messages.MessageField('WarningValue', 5)


class MachineType(_messages.Message):
  r"""A Machine Type resource. (== resource_for v1.machineTypes ==) (==
  resource_for beta.machineTypes ==)

  Messages:
    ScratchDisksValueListEntry: A ScratchDisksValueListEntry object.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    deprecated: [Output Only] The deprecation status associated with this
      machine type.
    description: [Output Only] An optional textual description of the
      resource.
    guestCpus: [Output Only] The number of virtual CPUs that are available to
      the instance.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    imageSpaceGb: [Deprecated] This property is deprecated and will never be
      populated with any relevant values.
    isSharedCpu: [Output Only] Whether this machine type has a shared CPU. See
      Shared-core machine types for more information.
    kind: [Output Only] The type of the resource. Always compute#machineType
      for machine types.
    maximumPersistentDisks: [Output Only] Maximum persistent disks allowed.
    maximumPersistentDisksSizeGb: [Output Only] Maximum total persistent disks
      size (GB) allowed.
    memoryMb: [Output Only] The amount of physical memory available to the
      instance, defined in MB.
    name: [Output Only] Name of the resource.
    scratchDisks: [Output Only] A list of extended scratch disks assigned to
      the instance.
    selfLink: [Output Only] Server-defined URL for the resource.
    zone: [Output Only] The name of the zone where the machine type resides,
      such as us-central1-a.
  """

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

    Fields:
      diskGb: Size of the scratch disk, defined in GB.
    """

    diskGb = _messages.IntegerField(1, variant=_messages.Variant.INT32)

  creationTimestamp = _messages.StringField(1)
  deprecated = _messages.MessageField('DeprecationStatus', 2)
  description = _messages.StringField(3)
  guestCpus = _messages.IntegerField(4, variant=_messages.Variant.INT32)
  id = _messages.IntegerField(5, variant=_messages.Variant.UINT64)
  imageSpaceGb = _messages.IntegerField(6, variant=_messages.Variant.INT32)
  isSharedCpu = _messages.BooleanField(7)
  kind = _messages.StringField(8, default=u'compute#machineType')
  maximumPersistentDisks = _messages.IntegerField(9, variant=_messages.Variant.INT32)
  maximumPersistentDisksSizeGb = _messages.IntegerField(10)
  memoryMb = _messages.IntegerField(11, variant=_messages.Variant.INT32)
  name = _messages.StringField(12)
  scratchDisks = _messages.MessageField('ScratchDisksValueListEntry', 13, repeated=True)
  selfLink = _messages.StringField(14)
  zone = _messages.StringField(15)


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

  Messages:
    ItemsValue: A list of MachineTypesScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of MachineTypesScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#machineTypeAggregatedList for aggregated lists of machine types.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of MachineTypesScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of machine types.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A MachineTypesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('MachineTypesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#machineTypeAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class MachineTypeList(_messages.Message):
  r"""Contains a list of machine types.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of MachineType resources.
    kind: [Output Only] Type of resource. Always compute#machineTypeList for
      lists of machine types.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('MachineType', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#machineTypeList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] An informational warning that appears when the
      machine types list is empty.

  Fields:
    machineTypes: [Output Only] A list of machine types contained in this
      scope.
    warning: [Output Only] An informational warning that appears when the
      machine types list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] An informational warning that appears when the machine
    types list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  machineTypes = _messages.MessageField('MachineType', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class ManagedInstance(_messages.Message):
  r"""A Managed Instance resource.

  Enums:
    CurrentActionValueValuesEnum: [Output Only] The current action that the
      managed instance group has scheduled for the instance. Possible values:
      - NONE The instance is running, and the managed instance group does not
      have any scheduled actions for this instance.  - CREATING The managed
      instance group is creating this instance. If the group fails to create
      this instance, it will try again until it is successful.  -
      CREATING_WITHOUT_RETRIES The managed instance group is attempting to
      create this instance only once. If the group fails to create this
      instance, it does not try again and the group's targetSize value is
      decreased instead.  - RECREATING The managed instance group is
      recreating this instance.  - DELETING The managed instance group is
      permanently deleting this instance.  - ABANDONING The managed instance
      group is abandoning this instance. The instance will be removed from the
      instance group and from any target pools that are associated with this
      group.  - RESTARTING The managed instance group is restarting the
      instance.  - REFRESHING The managed instance group is applying
      configuration changes to the instance without stopping it. For example,
      the group can update the target pool list for an instance without
      stopping that instance.  - VERIFYING The managed instance group has
      created the instance and it is in the process of being verified.
    InstanceStatusValueValuesEnum: [Output Only] The status of the instance.
      This field is empty when the instance does not exist.

  Fields:
    currentAction: [Output Only] The current action that the managed instance
      group has scheduled for the instance. Possible values:  - NONE The
      instance is running, and the managed instance group does not have any
      scheduled actions for this instance.  - CREATING The managed instance
      group is creating this instance. If the group fails to create this
      instance, it will try again until it is successful.  -
      CREATING_WITHOUT_RETRIES The managed instance group is attempting to
      create this instance only once. If the group fails to create this
      instance, it does not try again and the group's targetSize value is
      decreased instead.  - RECREATING The managed instance group is
      recreating this instance.  - DELETING The managed instance group is
      permanently deleting this instance.  - ABANDONING The managed instance
      group is abandoning this instance. The instance will be removed from the
      instance group and from any target pools that are associated with this
      group.  - RESTARTING The managed instance group is restarting the
      instance.  - REFRESHING The managed instance group is applying
      configuration changes to the instance without stopping it. For example,
      the group can update the target pool list for an instance without
      stopping that instance.  - VERIFYING The managed instance group has
      created the instance and it is in the process of being verified.
    id: [Output only] The unique identifier for this resource. This field is
      empty when instance does not exist.
    instance: [Output Only] The URL of the instance. The URL can exist even if
      the instance has not yet been created.
    instanceStatus: [Output Only] The status of the instance. This field is
      empty when the instance does not exist.
    lastAttempt: [Output Only] Information about the last attempt to create or
      delete the instance.
  """

  class CurrentActionValueValuesEnum(_messages.Enum):
    r"""[Output Only] The current action that the managed instance group has
    scheduled for the instance. Possible values:  - NONE The instance is
    running, and the managed instance group does not have any scheduled
    actions for this instance.  - CREATING The managed instance group is
    creating this instance. If the group fails to create this instance, it
    will try again until it is successful.  - CREATING_WITHOUT_RETRIES The
    managed instance group is attempting to create this instance only once. If
    the group fails to create this instance, it does not try again and the
    group's targetSize value is decreased instead.  - RECREATING The managed
    instance group is recreating this instance.  - DELETING The managed
    instance group is permanently deleting this instance.  - ABANDONING The
    managed instance group is abandoning this instance. The instance will be
    removed from the instance group and from any target pools that are
    associated with this group.  - RESTARTING The managed instance group is
    restarting the instance.  - REFRESHING The managed instance group is
    applying configuration changes to the instance without stopping it. For
    example, the group can update the target pool list for an instance without
    stopping that instance.  - VERIFYING The managed instance group has
    created the instance and it is in the process of being verified.

    Values:
      ABANDONING: <no description>
      CREATING: <no description>
      CREATING_WITHOUT_RETRIES: <no description>
      DELETING: <no description>
      NONE: <no description>
      RECREATING: <no description>
      REFRESHING: <no description>
      RESTARTING: <no description>
    """
    ABANDONING = 0
    CREATING = 1
    CREATING_WITHOUT_RETRIES = 2
    DELETING = 3
    NONE = 4
    RECREATING = 5
    REFRESHING = 6
    RESTARTING = 7

  class InstanceStatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the instance. This field is empty when the
    instance does not exist.

    Values:
      PROVISIONING: <no description>
      RUNNING: <no description>
      STAGING: <no description>
      STOPPED: <no description>
      STOPPING: <no description>
      SUSPENDED: <no description>
      SUSPENDING: <no description>
      TERMINATED: <no description>
    """
    PROVISIONING = 0
    RUNNING = 1
    STAGING = 2
    STOPPED = 3
    STOPPING = 4
    SUSPENDED = 5
    SUSPENDING = 6
    TERMINATED = 7

  currentAction = _messages.EnumField('CurrentActionValueValuesEnum', 1)
  id = _messages.IntegerField(2, variant=_messages.Variant.UINT64)
  instance = _messages.StringField(3)
  instanceStatus = _messages.EnumField('InstanceStatusValueValuesEnum', 4)
  lastAttempt = _messages.MessageField('ManagedInstanceLastAttempt', 5)


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

  Messages:
    ErrorsValue: [Output Only] Encountered errors during the last attempt to
      create or delete the instance.

  Fields:
    errors: [Output Only] Encountered errors during the last attempt to create
      or delete the instance.
  """

  class ErrorsValue(_messages.Message):
    r"""[Output Only] Encountered errors during the last attempt to create or
    delete the instance.

    Messages:
      ErrorsValueListEntry: A ErrorsValueListEntry object.

    Fields:
      errors: [Output Only] The array of errors encountered while processing
        this operation.
    """

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

      Fields:
        code: [Output Only] The error type identifier for this error.
        location: [Output Only] Indicates the field in the request that caused
          the error. This property is optional.
        message: [Output Only] An optional, human-readable error message.
      """

      code = _messages.StringField(1)
      location = _messages.StringField(2)
      message = _messages.StringField(3)

    errors = _messages.MessageField('ErrorsValueListEntry', 1, repeated=True)

  errors = _messages.MessageField('ErrorsValue', 1)


class Metadata(_messages.Message):
  r"""A metadata key/value entry.

  Messages:
    ItemsValueListEntry: A ItemsValueListEntry object.

  Fields:
    fingerprint: Specifies a fingerprint for this request, which is
      essentially a hash of the metadata's contents and used for optimistic
      locking. The fingerprint is initially generated by Compute Engine and
      changes after every request to modify or update metadata. You must
      always provide an up-to-date fingerprint hash in order to update or
      change metadata.  To see the latest fingerprint, make a get() request to
      retrieve the resource.
    items: Array of key/value pairs. The total size of all keys and values
      must be less than 512 KB.
    kind: [Output Only] Type of the resource. Always compute#metadata for
      metadata.
  """

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

    Fields:
      key: Key for the metadata entry. Keys must conform to the following
        regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
        reflected as part of a URL in the metadata server. Additionally, to
        avoid ambiguity, keys must not conflict with any other metadata keys
        for the project.
      value: Value for the metadata entry. These are free-form strings, and
        only have meaning as interpreted by the image running in the instance.
        The only restriction placed on values is that their size must be less
        than or equal to 262144 bytes (256 KiB).
    """

    key = _messages.StringField(1)
    value = _messages.StringField(2)

  fingerprint = _messages.BytesField(1)
  items = _messages.MessageField('ItemsValueListEntry', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#metadata')


class NamedPort(_messages.Message):
  r"""The named port. For example: .

  Fields:
    name: The name for this named port. The name must be 1-63 characters long,
      and comply with RFC1035.
    port: The port number, which can be a value between 1 and 65535.
  """

  name = _messages.StringField(1)
  port = _messages.IntegerField(2, variant=_messages.Variant.INT32)


class Network(_messages.Message):
  r"""Represents a Network resource. Read Networks and Firewalls for more
  information. (== resource_for v1.networks ==) (== resource_for beta.networks
  ==)

  Fields:
    IPv4Range: The range of internal addresses that are legal on this network.
      This range is a CIDR specification, for example: 192.168.0.0/16.
      Provided by the client when the network is created.
    autoCreateSubnetworks: When set to true, the network is created in "auto
      subnet mode". When set to false, the network is in "custom subnet mode".
      In "auto subnet mode", a newly created network is assigned the default
      CIDR of 10.128.0.0/9 and it automatically creates one subnetwork per
      region.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    gatewayIPv4: A gateway address for default routing to other networks. This
      value is read only and is selected by the Google Compute Engine,
      typically as the first usable address in the IPv4Range.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#network for
      networks.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    peerings: [Output Only] A list of network peerings for the resource.
    routingConfig: The network-level routing configuration for this network.
      Used by Cloud Router to determine what type of network-wide routing
      behavior to enforce.
    selfLink: [Output Only] Server-defined URL for the resource.
    subnetworks: [Output Only] Server-defined fully-qualified URLs for all
      subnetworks in this network.
  """

  IPv4Range = _messages.StringField(1)
  autoCreateSubnetworks = _messages.BooleanField(2)
  creationTimestamp = _messages.StringField(3)
  description = _messages.StringField(4)
  gatewayIPv4 = _messages.StringField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#network')
  name = _messages.StringField(8)
  peerings = _messages.MessageField('NetworkPeering', 9, repeated=True)
  routingConfig = _messages.MessageField('NetworkRoutingConfig', 10)
  selfLink = _messages.StringField(11)
  subnetworks = _messages.StringField(12, repeated=True)


class NetworkInterface(_messages.Message):
  r"""A network interface resource attached to an instance.

  Fields:
    accessConfigs: An array of configurations for this interface. Currently,
      only one access config, ONE_TO_ONE_NAT, is supported. If there are no
      accessConfigs specified, then this instance will have no external
      internet access.
    aliasIpRanges: An array of alias IP ranges for this network interface. Can
      only be specified for network interfaces on subnet-mode networks.
    fingerprint: Fingerprint hash of contents stored in this network
      interface. This field will be ignored when inserting an Instance or
      adding a NetworkInterface. An up-to-date fingerprint must be provided in
      order to update the NetworkInterface.
    kind: [Output Only] Type of the resource. Always compute#networkInterface
      for network interfaces.
    name: [Output Only] The name of the network interface, generated by the
      server. For network devices, these are eth0, eth1, etc.
    network: URL of the network resource for this instance. When creating an
      instance, if neither the network nor the subnetwork is specified, the
      default network global/networks/default is used; if the network is not
      specified but the subnetwork is specified, the network is inferred.
      This field is optional when creating a firewall rule. If not specified
      when creating a firewall rule, the default network
      global/networks/default is used.  If you specify this property, you can
      specify the network as a full or partial URL. For example, the following
      are all valid URLs:   - https://www.googleapis.com/compute/v1/projects/p
      roject/global/networks/network  -
      projects/project/global/networks/network  - global/networks/default
    networkIP: An IPv4 internal network address to assign to the instance for
      this network interface. If not specified by the user, an unused internal
      IP is assigned by the system.
    subnetwork: The URL of the Subnetwork resource for this instance. If the
      network resource is in legacy mode, do not provide this property. If the
      network is in auto subnet mode, providing the subnetwork is optional. If
      the network is in custom subnet mode, then this field should be
      specified. If you specify this property, you can specify the subnetwork
      as a full or partial URL. For example, the following are all valid URLs:
      - https://www.googleapis.com/compute/v1/projects/project/regions/region/
      subnetworks/subnetwork  - regions/region/subnetworks/subnetwork
  """

  accessConfigs = _messages.MessageField('AccessConfig', 1, repeated=True)
  aliasIpRanges = _messages.MessageField('AliasIpRange', 2, repeated=True)
  fingerprint = _messages.BytesField(3)
  kind = _messages.StringField(4, default=u'compute#networkInterface')
  name = _messages.StringField(5)
  network = _messages.StringField(6)
  networkIP = _messages.StringField(7)
  subnetwork = _messages.StringField(8)


class NetworkList(_messages.Message):
  r"""Contains a list of networks.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Network resources.
    kind: [Output Only] Type of resource. Always compute#networkList for lists
      of networks.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Network', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#networkList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class NetworkPeering(_messages.Message):
  r"""A network peering attached to a network resource. The message includes
  the peering name, peer network, peering state, and a flag indicating whether
  Google Compute Engine should automatically create routes for the peering.

  Enums:
    StateValueValuesEnum: [Output Only] State for the peering.

  Fields:
    autoCreateRoutes: Whether full mesh connectivity is created and managed
      automatically. When it is set to true, Google Compute Engine will
      automatically create and manage the routes between two networks when the
      state is ACTIVE. Otherwise, user needs to create routes manually to
      route packets to peer network.
    name: Name of this peering. Provided by the client when the peering is
      created. The name must comply with RFC1035. Specifically, the name must
      be 1-63 characters long and match regular expression
      `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be a
      lowercase letter, and all the following characters must be a dash,
      lowercase letter, or digit, except the last character, which cannot be a
      dash.
    network: The URL of the peer network. It can be either full URL or partial
      URL. The peer network may belong to a different project. If the partial
      URL does not contain project, it is assumed that the peer network is in
      the same project as the current network.
    state: [Output Only] State for the peering.
    stateDetails: [Output Only] Details about the current state of the
      peering.
  """

  class StateValueValuesEnum(_messages.Enum):
    r"""[Output Only] State for the peering.

    Values:
      ACTIVE: <no description>
      INACTIVE: <no description>
    """
    ACTIVE = 0
    INACTIVE = 1

  autoCreateRoutes = _messages.BooleanField(1)
  name = _messages.StringField(2)
  network = _messages.StringField(3)
  state = _messages.EnumField('StateValueValuesEnum', 4)
  stateDetails = _messages.StringField(5)


class NetworkRoutingConfig(_messages.Message):
  r"""A routing configuration attached to a network resource. The message
  includes the list of routers associated with the network, and a flag
  indicating the type of routing behavior to enforce network-wide.

  Enums:
    RoutingModeValueValuesEnum: The network-wide routing mode to use. If set
      to REGIONAL, this network's cloud routers will only advertise routes
      with subnetworks of this network in the same region as the router. If
      set to GLOBAL, this network's cloud routers will advertise routes with
      all subnetworks of this network, across regions.

  Fields:
    routingMode: The network-wide routing mode to use. If set to REGIONAL,
      this network's cloud routers will only advertise routes with subnetworks
      of this network in the same region as the router. If set to GLOBAL, this
      network's cloud routers will advertise routes with all subnetworks of
      this network, across regions.
  """

  class RoutingModeValueValuesEnum(_messages.Enum):
    r"""The network-wide routing mode to use. If set to REGIONAL, this
    network's cloud routers will only advertise routes with subnetworks of
    this network in the same region as the router. If set to GLOBAL, this
    network's cloud routers will advertise routes with all subnetworks of this
    network, across regions.

    Values:
      GLOBAL: <no description>
      REGIONAL: <no description>
    """
    GLOBAL = 0
    REGIONAL = 1

  routingMode = _messages.EnumField('RoutingModeValueValuesEnum', 1)


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

  Fields:
    autoCreateRoutes: Whether Google Compute Engine manages the routes
      automatically.
    name: Name of the peering, which should conform to RFC1035.
    peerNetwork: URL of the peer network. It can be either full URL or partial
      URL. The peer network may belong to a different project. If the partial
      URL does not contain project, it is assumed that the peer network is in
      the same project as the current network.
  """

  autoCreateRoutes = _messages.BooleanField(1)
  name = _messages.StringField(2)
  peerNetwork = _messages.StringField(3)


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

  Fields:
    name: Name of the peering, which should conform to RFC1035.
  """

  name = _messages.StringField(1)


class Operation(_messages.Message):
  r"""An Operation resource, used to manage asynchronous API requests. (==
  resource_for v1.globalOperations ==) (== resource_for beta.globalOperations
  ==) (== resource_for v1.regionOperations ==) (== resource_for
  beta.regionOperations ==) (== resource_for v1.zoneOperations ==) (==
  resource_for beta.zoneOperations ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the operation, which
      can be one of the following: PENDING, RUNNING, or DONE.

  Messages:
    ErrorValue: [Output Only] If errors are generated during processing of the
      operation, this field will be populated.
    WarningsValueListEntry: A WarningsValueListEntry object.

  Fields:
    clientOperationId: [Output Only] The value of `requestId` if you provided
      it in the request. Not present otherwise.
    creationTimestamp: [Deprecated] This field is deprecated.
    description: [Output Only] A textual description of the operation, which
      is set when the operation is created.
    endTime: [Output Only] The time that this operation was completed. This
      value is in RFC3339 text format.
    error: [Output Only] If errors are generated during processing of the
      operation, this field will be populated.
    httpErrorMessage: [Output Only] If the operation fails, this field
      contains the HTTP error message that was returned, such as NOT FOUND.
    httpErrorStatusCode: [Output Only] If the operation fails, this field
      contains the HTTP error status code that was returned. For example, a
      404 means the resource was not found.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    insertTime: [Output Only] The time that this operation was requested. This
      value is in RFC3339 text format.
    kind: [Output Only] Type of the resource. Always compute#operation for
      Operation resources.
    name: [Output Only] Name of the resource.
    operationType: [Output Only] The type of operation, such as insert,
      update, or delete, and so on.
    progress: [Output Only] An optional progress indicator that ranges from 0
      to 100. There is no requirement that this be linear or support any
      granularity of operations. This should not be used to guess when the
      operation will be complete. This number should monotonically increase as
      the operation progresses.
    region: [Output Only] The URL of the region where the operation resides.
      Only available when performing regional operations. You must specify
      this field as part of the HTTP request URL. It is not settable as a
      field in the request body.
    selfLink: [Output Only] Server-defined URL for the resource.
    startTime: [Output Only] The time that this operation was started by the
      server. This value is in RFC3339 text format.
    status: [Output Only] The status of the operation, which can be one of the
      following: PENDING, RUNNING, or DONE.
    statusMessage: [Output Only] An optional textual description of the
      current status of the operation.
    targetId: [Output Only] The unique target ID, which identifies a specific
      incarnation of the target resource.
    targetLink: [Output Only] The URL of the resource that the operation
      modifies. For operations related to creating a snapshot, this points to
      the persistent disk that the snapshot was created from.
    user: [Output Only] User who requested the operation, for example:
      user@example.com.
    warnings: [Output Only] If warning messages are generated during
      processing of the operation, this field will be populated.
    zone: [Output Only] The URL of the zone where the operation resides. Only
      available when performing per-zone operations. You must specify this
      field as part of the HTTP request URL. It is not settable as a field in
      the request body.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the operation, which can be one of the
    following: PENDING, RUNNING, or DONE.

    Values:
      DONE: <no description>
      PENDING: <no description>
      RUNNING: <no description>
    """
    DONE = 0
    PENDING = 1
    RUNNING = 2

  class ErrorValue(_messages.Message):
    r"""[Output Only] If errors are generated during processing of the
    operation, this field will be populated.

    Messages:
      ErrorsValueListEntry: A ErrorsValueListEntry object.

    Fields:
      errors: [Output Only] The array of errors encountered while processing
        this operation.
    """

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

      Fields:
        code: [Output Only] The error type identifier for this error.
        location: [Output Only] Indicates the field in the request that caused
          the error. This property is optional.
        message: [Output Only] An optional, human-readable error message.
      """

      code = _messages.StringField(1)
      location = _messages.StringField(2)
      message = _messages.StringField(3)

    errors = _messages.MessageField('ErrorsValueListEntry', 1, repeated=True)

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

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  clientOperationId = _messages.StringField(1)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  endTime = _messages.StringField(4)
  error = _messages.MessageField('ErrorValue', 5)
  httpErrorMessage = _messages.StringField(6)
  httpErrorStatusCode = _messages.IntegerField(7, variant=_messages.Variant.INT32)
  id = _messages.IntegerField(8, variant=_messages.Variant.UINT64)
  insertTime = _messages.StringField(9)
  kind = _messages.StringField(10, default=u'compute#operation')
  name = _messages.StringField(11)
  operationType = _messages.StringField(12)
  progress = _messages.IntegerField(13, variant=_messages.Variant.INT32)
  region = _messages.StringField(14)
  selfLink = _messages.StringField(15)
  startTime = _messages.StringField(16)
  status = _messages.EnumField('StatusValueValuesEnum', 17)
  statusMessage = _messages.StringField(18)
  targetId = _messages.IntegerField(19, variant=_messages.Variant.UINT64)
  targetLink = _messages.StringField(20)
  user = _messages.StringField(21)
  warnings = _messages.MessageField('WarningsValueListEntry', 22, repeated=True)
  zone = _messages.StringField(23)


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

  Messages:
    ItemsValue: [Output Only] A map of scoped operation lists.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    items: [Output Only] A map of scoped operation lists.
    kind: [Output Only] Type of resource. Always
      compute#operationAggregatedList for aggregated lists of operations.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""[Output Only] A map of scoped operation lists.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of operations.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A OperationsScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('OperationsScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#operationAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class OperationList(_messages.Message):
  r"""Contains a list of Operation resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    items: [Output Only] A list of Operation resources.
    kind: [Output Only] Type of resource. Always compute#operations for
      Operations resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Operation', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#operationList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of operations when the list is empty.

  Fields:
    operations: [Output Only] A list of operations contained in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      operations when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of
    operations when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  operations = _messages.MessageField('Operation', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class PathMatcher(_messages.Message):
  r"""A matcher for the path portion of the URL. The BackendService from the
  longest-matched rule will serve the URL. If no rule was matched, the default
  service will be used.

  Fields:
    defaultService: The full or partial URL to the BackendService resource.
      This will be used if none of the pathRules defined by this PathMatcher
      is matched by the URL's path portion. For example, the following are all
      valid URLs to a BackendService resource:   - https://www.googleapis.com/
      compute/v1/projects/project/global/backendServices/backendService  -
      compute/v1/projects/project/global/backendServices/backendService  -
      global/backendServices/backendService
    description: An optional description of this resource. Provide this
      property when you create the resource.
    name: The name to which this PathMatcher is referred by the HostRule.
    pathRules: The list of path rules.
  """

  defaultService = _messages.StringField(1)
  description = _messages.StringField(2)
  name = _messages.StringField(3)
  pathRules = _messages.MessageField('PathRule', 4, repeated=True)


class PathRule(_messages.Message):
  r"""A path-matching rule for a URL. If matched, will use the specified
  BackendService to handle the traffic arriving at this URL.

  Fields:
    paths: The list of path patterns to match. Each must start with / and the
      only place a * is allowed is at the end following a /. The string fed to
      the path matcher does not include any text after the first ? or #, and
      those chars are not allowed here.
    service: The URL of the BackendService resource if this rule is matched.
  """

  paths = _messages.StringField(1, repeated=True)
  service = _messages.StringField(2)


class Project(_messages.Message):
  r"""A Project resource. For an overview of projects, see  Cloud Platform
  Resource Hierarchy. (== resource_for v1.projects ==) (== resource_for
  beta.projects ==)

  Enums:
    XpnProjectStatusValueValuesEnum: [Output Only] The role this project has
      in a shared VPC configuration. Currently only HOST projects are
      differentiated.

  Fields:
    commonInstanceMetadata: Metadata key/value pairs available to all
      instances contained in this project. See Custom metadata for more
      information.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    defaultServiceAccount: [Output Only] Default service account used by VMs
      running in this project.
    description: An optional textual description of the resource.
    enabledFeatures: Restricted features enabled for use on this project.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server. This is not the project ID, and is just a
      unique ID used by Compute Engine to identify resources.
    kind: [Output Only] Type of the resource. Always compute#project for
      projects.
    name: The project ID. For example: my-example-project. Use the project ID
      to make requests to Compute Engine.
    quotas: [Output Only] Quotas assigned to this project.
    selfLink: [Output Only] Server-defined URL for the resource.
    usageExportLocation: The naming prefix for daily usage reports and the
      Google Cloud Storage bucket where they are stored.
    xpnProjectStatus: [Output Only] The role this project has in a shared VPC
      configuration. Currently only HOST projects are differentiated.
  """

  class XpnProjectStatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The role this project has in a shared VPC configuration.
    Currently only HOST projects are differentiated.

    Values:
      HOST: <no description>
      UNSPECIFIED_XPN_PROJECT_STATUS: <no description>
    """
    HOST = 0
    UNSPECIFIED_XPN_PROJECT_STATUS = 1

  commonInstanceMetadata = _messages.MessageField('Metadata', 1)
  creationTimestamp = _messages.StringField(2)
  defaultServiceAccount = _messages.StringField(3)
  description = _messages.StringField(4)
  enabledFeatures = _messages.StringField(5, repeated=True)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#project')
  name = _messages.StringField(8)
  quotas = _messages.MessageField('Quota', 9, repeated=True)
  selfLink = _messages.StringField(10)
  usageExportLocation = _messages.MessageField('UsageExportLocation', 11)
  xpnProjectStatus = _messages.EnumField('XpnProjectStatusValueValuesEnum', 12)


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

  Fields:
    xpnResource: Service resource (a.k.a service project) ID.
  """

  xpnResource = _messages.MessageField('XpnResourceId', 1)


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

  Fields:
    xpnResource: Service resource (a.k.a service project) ID.
  """

  xpnResource = _messages.MessageField('XpnResourceId', 1)


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

  Fields:
    kind: [Output Only] Type of resource. Always
      compute#projectsGetXpnResources for lists of service resources (a.k.a
      service projects)
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    resources: Service resources (a.k.a service projects) attached to this
      project as their shared VPC host.
  """

  kind = _messages.StringField(1, default=u'compute#projectsGetXpnResources')
  nextPageToken = _messages.StringField(2)
  resources = _messages.MessageField('XpnResourceId', 3, repeated=True)


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

  Fields:
    organization: Optional organization ID managed by Cloud Resource Manager,
      for which to list shared VPC host projects. If not specified, the
      organization will be inferred from the project.
  """

  organization = _messages.StringField(1)


class Quota(_messages.Message):
  r"""A quotas entry.

  Enums:
    MetricValueValuesEnum: [Output Only] Name of the quota metric.

  Fields:
    limit: [Output Only] Quota limit for this metric.
    metric: [Output Only] Name of the quota metric.
    usage: [Output Only] Current usage of this metric.
  """

  class MetricValueValuesEnum(_messages.Enum):
    r"""[Output Only] Name of the quota metric.

    Values:
      AUTOSCALERS: <no description>
      BACKEND_BUCKETS: <no description>
      BACKEND_SERVICES: <no description>
      COMMITMENTS: <no description>
      CPUS: <no description>
      CPUS_ALL_REGIONS: <no description>
      DISKS_TOTAL_GB: <no description>
      FIREWALLS: <no description>
      FORWARDING_RULES: <no description>
      HEALTH_CHECKS: <no description>
      IMAGES: <no description>
      INSTANCES: <no description>
      INSTANCE_GROUPS: <no description>
      INSTANCE_GROUP_MANAGERS: <no description>
      INSTANCE_TEMPLATES: <no description>
      INTERCONNECTS: <no description>
      INTERCONNECT_ATTACHMENTS_PER_REGION: <no description>
      INTERCONNECT_ATTACHMENTS_TOTAL_MBPS: <no description>
      INTERNAL_ADDRESSES: <no description>
      IN_USE_ADDRESSES: <no description>
      LOCAL_SSD_TOTAL_GB: <no description>
      NETWORKS: <no description>
      NVIDIA_K80_GPUS: <no description>
      NVIDIA_P100_GPUS: <no description>
      NVIDIA_V100_GPUS: <no description>
      PREEMPTIBLE_CPUS: <no description>
      PREEMPTIBLE_LOCAL_SSD_GB: <no description>
      PREEMPTIBLE_NVIDIA_K80_GPUS: <no description>
      PREEMPTIBLE_NVIDIA_P100_GPUS: <no description>
      PREEMPTIBLE_NVIDIA_V100_GPUS: <no description>
      REGIONAL_AUTOSCALERS: <no description>
      REGIONAL_INSTANCE_GROUP_MANAGERS: <no description>
      ROUTERS: <no description>
      ROUTES: <no description>
      SECURITY_POLICIES: <no description>
      SECURITY_POLICY_RULES: <no description>
      SNAPSHOTS: <no description>
      SSD_TOTAL_GB: <no description>
      SSL_CERTIFICATES: <no description>
      STATIC_ADDRESSES: <no description>
      SUBNETWORKS: <no description>
      TARGET_HTTPS_PROXIES: <no description>
      TARGET_HTTP_PROXIES: <no description>
      TARGET_INSTANCES: <no description>
      TARGET_POOLS: <no description>
      TARGET_SSL_PROXIES: <no description>
      TARGET_TCP_PROXIES: <no description>
      TARGET_VPN_GATEWAYS: <no description>
      URL_MAPS: <no description>
      VPN_TUNNELS: <no description>
    """
    AUTOSCALERS = 0
    BACKEND_BUCKETS = 1
    BACKEND_SERVICES = 2
    COMMITMENTS = 3
    CPUS = 4
    CPUS_ALL_REGIONS = 5
    DISKS_TOTAL_GB = 6
    FIREWALLS = 7
    FORWARDING_RULES = 8
    HEALTH_CHECKS = 9
    IMAGES = 10
    INSTANCES = 11
    INSTANCE_GROUPS = 12
    INSTANCE_GROUP_MANAGERS = 13
    INSTANCE_TEMPLATES = 14
    INTERCONNECTS = 15
    INTERCONNECT_ATTACHMENTS_PER_REGION = 16
    INTERCONNECT_ATTACHMENTS_TOTAL_MBPS = 17
    INTERNAL_ADDRESSES = 18
    IN_USE_ADDRESSES = 19
    LOCAL_SSD_TOTAL_GB = 20
    NETWORKS = 21
    NVIDIA_K80_GPUS = 22
    NVIDIA_P100_GPUS = 23
    NVIDIA_V100_GPUS = 24
    PREEMPTIBLE_CPUS = 25
    PREEMPTIBLE_LOCAL_SSD_GB = 26
    PREEMPTIBLE_NVIDIA_K80_GPUS = 27
    PREEMPTIBLE_NVIDIA_P100_GPUS = 28
    PREEMPTIBLE_NVIDIA_V100_GPUS = 29
    REGIONAL_AUTOSCALERS = 30
    REGIONAL_INSTANCE_GROUP_MANAGERS = 31
    ROUTERS = 32
    ROUTES = 33
    SECURITY_POLICIES = 34
    SECURITY_POLICY_RULES = 35
    SNAPSHOTS = 36
    SSD_TOTAL_GB = 37
    SSL_CERTIFICATES = 38
    STATIC_ADDRESSES = 39
    SUBNETWORKS = 40
    TARGET_HTTPS_PROXIES = 41
    TARGET_HTTP_PROXIES = 42
    TARGET_INSTANCES = 43
    TARGET_POOLS = 44
    TARGET_SSL_PROXIES = 45
    TARGET_TCP_PROXIES = 46
    TARGET_VPN_GATEWAYS = 47
    URL_MAPS = 48
    VPN_TUNNELS = 49

  limit = _messages.FloatField(1)
  metric = _messages.EnumField('MetricValueValuesEnum', 2)
  usage = _messages.FloatField(3)


class Reference(_messages.Message):
  r"""Represents a reference to a resource.

  Fields:
    kind: [Output Only] Type of the resource. Always compute#reference for
      references.
    referenceType: A description of the reference type with no implied
      semantics. Possible values include:   - MEMBER_OF
    referrer: URL of the resource which refers to the target.
    target: URL of the resource to which this reference points.
  """

  kind = _messages.StringField(1, default=u'compute#reference')
  referenceType = _messages.StringField(2)
  referrer = _messages.StringField(3)
  target = _messages.StringField(4)


class Region(_messages.Message):
  r"""Region resource. (== resource_for beta.regions ==) (== resource_for
  v1.regions ==)

  Enums:
    StatusValueValuesEnum: [Output Only] Status of the region, either UP or
      DOWN.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    deprecated: [Output Only] The deprecation status associated with this
      region.
    description: [Output Only] Textual description of the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#region for
      regions.
    name: [Output Only] Name of the resource.
    quotas: [Output Only] Quotas assigned to this region.
    selfLink: [Output Only] Server-defined URL for the resource.
    status: [Output Only] Status of the region, either UP or DOWN.
    zones: [Output Only] A list of zones available in this region, in the form
      of resource URLs.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] Status of the region, either UP or DOWN.

    Values:
      DOWN: <no description>
      UP: <no description>
    """
    DOWN = 0
    UP = 1

  creationTimestamp = _messages.StringField(1)
  deprecated = _messages.MessageField('DeprecationStatus', 2)
  description = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#region')
  name = _messages.StringField(6)
  quotas = _messages.MessageField('Quota', 7, repeated=True)
  selfLink = _messages.StringField(8)
  status = _messages.EnumField('StatusValueValuesEnum', 9)
  zones = _messages.StringField(10, repeated=True)


class RegionAutoscalerList(_messages.Message):
  r"""Contains a list of autoscalers.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Autoscaler resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Autoscaler', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#regionAutoscalerList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of DiskType resources.
    kind: [Output Only] Type of resource. Always compute#regionDiskTypeList
      for region disk types.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('DiskType', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#regionDiskTypeList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    sizeGb: The new size of the regional persistent disk, which is specified
      in GB.
  """

  sizeGb = _messages.IntegerField(1)


class RegionInstanceGroupList(_messages.Message):
  r"""Contains a list of InstanceGroup resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceGroup resources.
    kind: The resource type.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceGroup', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#regionInstanceGroupList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class RegionInstanceGroupManagerList(_messages.Message):
  r"""Contains a list of managed instance groups.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceGroupManager resources.
    kind: [Output Only] The resource type, which is always
      compute#instanceGroupManagerList for a list of managed instance groups
      that exist in th regional scope.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceGroupManager', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#regionInstanceGroupManagerList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    instances: The URLs of one or more instances to abandon. This can be a
      full URL or a partial URL, such as
      zones/[ZONE]/instances/[INSTANCE_NAME].
  """

  instances = _messages.StringField(1, repeated=True)


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

  Fields:
    instances: The URLs of one or more instances to delete. This can be a full
      URL or a partial URL, such as zones/[ZONE]/instances/[INSTANCE_NAME].
  """

  instances = _messages.StringField(1, repeated=True)


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

  Fields:
    managedInstances: A list of managed instances.
  """

  managedInstances = _messages.MessageField('ManagedInstance', 1, repeated=True)


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

  Fields:
    instances: The URLs of one or more instances to recreate. This can be a
      full URL or a partial URL, such as
      zones/[ZONE]/instances/[INSTANCE_NAME].
  """

  instances = _messages.StringField(1, repeated=True)


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

  Fields:
    fingerprint: Fingerprint of the target pools information, which is a hash
      of the contents. This field is used for optimistic locking when you
      update the target pool entries. This field is optional.
    targetPools: The URL of all TargetPool resources to which instances in the
      instanceGroup field are added. The target pools automatically apply to
      all of the instances in the managed instance group.
  """

  fingerprint = _messages.BytesField(1)
  targetPools = _messages.StringField(2, repeated=True)


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

  Fields:
    instanceTemplate: URL of the InstanceTemplate resource from which all new
      instances will be created.
  """

  instanceTemplate = _messages.StringField(1)


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

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of InstanceWithNamedPorts resources.
    kind: The resource type.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('InstanceWithNamedPorts', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#regionInstanceGroupsListInstances')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Enums:
    InstanceStateValueValuesEnum: Instances in which state should be returned.
      Valid options are: 'ALL', 'RUNNING'. By default, it lists all instances.

  Fields:
    instanceState: Instances in which state should be returned. Valid options
      are: 'ALL', 'RUNNING'. By default, it lists all instances.
    portName: Name of port user is interested in. It is optional. If it is
      set, only information about this ports will be returned. If it is not
      set, all the named ports will be returned. Always lists all instances.
  """

  class InstanceStateValueValuesEnum(_messages.Enum):
    r"""Instances in which state should be returned. Valid options are: 'ALL',
    'RUNNING'. By default, it lists all instances.

    Values:
      ALL: <no description>
      RUNNING: <no description>
    """
    ALL = 0
    RUNNING = 1

  instanceState = _messages.EnumField('InstanceStateValueValuesEnum', 1)
  portName = _messages.StringField(2)


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

  Fields:
    fingerprint: The fingerprint of the named ports information for this
      instance group. Use this optional property to prevent conflicts when
      multiple users change the named ports settings concurrently. Obtain the
      fingerprint with the instanceGroups.get method. Then, include the
      fingerprint in your request to ensure that you do not overwrite changes
      that were applied from another concurrent request.
    namedPorts: The list of named ports to set for this instance group.
  """

  fingerprint = _messages.BytesField(1)
  namedPorts = _messages.MessageField('NamedPort', 2, repeated=True)


class RegionList(_messages.Message):
  r"""Contains a list of region resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Region resources.
    kind: [Output Only] Type of resource. Always compute#regionList for lists
      of regions.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Region', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#regionList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    LabelsValue: The labels to set for this resource.

  Fields:
    labelFingerprint: The fingerprint of the previous set of labels for this
      resource, used to detect conflicts. The fingerprint is initially
      generated by Compute Engine and changes after every request to modify or
      update labels. You must always provide an up-to-date fingerprint hash in
      order to update or change labels. Make a get() request to the resource
      to get the latest fingerprint.
    labels: The labels to set for this resource.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""The labels to set for this resource.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  labelFingerprint = _messages.BytesField(1)
  labels = _messages.MessageField('LabelsValue', 2)


class ResourceCommitment(_messages.Message):
  r"""Commitment for a particular resource (a Commitment is composed of one or
  more of these).

  Enums:
    TypeValueValuesEnum: Type of resource for which this commitment applies.
      Possible values are VCPU and MEMORY

  Fields:
    amount: The amount of the resource purchased (in a type-dependent unit,
      such as bytes). For vCPUs, this can just be an integer. For memory, this
      must be provided in MB. Memory must be a multiple of 256 MB, with up to
      6.5GB of memory per every vCPU.
    type: Type of resource for which this commitment applies. Possible values
      are VCPU and MEMORY
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Type of resource for which this commitment applies. Possible values
    are VCPU and MEMORY

    Values:
      MEMORY: <no description>
      UNSPECIFIED: <no description>
      VCPU: <no description>
    """
    MEMORY = 0
    UNSPECIFIED = 1
    VCPU = 2

  amount = _messages.IntegerField(1)
  type = _messages.EnumField('TypeValueValuesEnum', 2)


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

  Fields:
    group: A URI referencing one of the instance groups listed in the backend
      service.
  """

  group = _messages.StringField(1)


class Route(_messages.Message):
  r"""Represents a Route resource. A route specifies how certain packets
  should be handled by the network. Routes are associated with instances by
  tags and the set of routes for a particular instance is called its routing
  table.  For each packet leaving an instance, the system searches that
  instance's routing table for a single best matching route. Routes match
  packets by destination IP address, preferring smaller or more specific
  ranges over larger ones. If there is a tie, the system selects the route
  with the smallest priority value. If there is still a tie, it uses the layer
  three and four packet headers to select just one of the remaining matching
  routes. The packet is then forwarded as specified by the nextHop field of
  the winning route - either to another instance destination, an instance
  gateway, or a Google Compute Engine-operated gateway.  Packets that do not
  match any route in the sending instance's routing table are dropped. (==
  resource_for beta.routes ==) (== resource_for v1.routes ==)

  Messages:
    WarningsValueListEntry: A WarningsValueListEntry object.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    destRange: The destination range of outgoing packets that this route
      applies to. Only IPv4 is supported.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of this resource. Always compute#routes for Route
      resources.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    network: Fully-qualified URL of the network that this route applies to.
    nextHopGateway: The URL to a gateway that should handle matching packets.
      You can only specify the internet gateway using a full or partial valid
      URL:  projects/<project-id>/global/gateways/default-internet-gateway
    nextHopInstance: The URL to an instance that should handle matching
      packets. You can specify this as a full or partial URL. For example: htt
      ps://www.googleapis.com/compute/v1/projects/project/zones/zone/instances
      /
    nextHopIp: The network IP address of an instance that should handle
      matching packets. Only IPv4 is supported.
    nextHopNetwork: The URL of the local network if it should handle matching
      packets.
    nextHopPeering: [Output Only] The network peering name that should handle
      matching packets, which should conform to RFC1035.
    nextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
      packets.
    priority: The priority of this route. Priority is used to break ties in
      cases where there is more than one matching route of equal prefix
      length. In the case of two routes with equal prefix length, the one with
      the lowest-numbered priority value wins. Default value is 1000. Valid
      range is 0 through 65535.
    selfLink: [Output Only] Server-defined fully-qualified URL for this
      resource.
    tags: A list of instance tags to which this route applies.
    warnings: [Output Only] If potential misconfigurations are detected for
      this route, this field will be populated with warning messages.
  """

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

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  destRange = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#route')
  name = _messages.StringField(6)
  network = _messages.StringField(7)
  nextHopGateway = _messages.StringField(8)
  nextHopInstance = _messages.StringField(9)
  nextHopIp = _messages.StringField(10)
  nextHopNetwork = _messages.StringField(11)
  nextHopPeering = _messages.StringField(12)
  nextHopVpnTunnel = _messages.StringField(13)
  priority = _messages.IntegerField(14, variant=_messages.Variant.UINT32)
  selfLink = _messages.StringField(15)
  tags = _messages.StringField(16, repeated=True)
  warnings = _messages.MessageField('WarningsValueListEntry', 17, repeated=True)


class RouteList(_messages.Message):
  r"""Contains a list of Route resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Route resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Route', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#routeList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class Router(_messages.Message):
  r"""Router resource.

  Fields:
    bgp: BGP information specific to this router.
    bgpPeers: BGP information that needs to be configured into the routing
      stack to establish the BGP peering. It must specify peer ASN and either
      interface name, IP, or peer IP. Please refer to RFC4273.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    interfaces: Router interfaces. Each interface requires either one linked
      resource (e.g. linkedVpnTunnel), or IP address and IP address range
      (e.g. ipRange), or both.
    kind: [Output Only] Type of resource. Always compute#router for routers.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    network: URI of the network to which this router belongs.
    region: [Output Only] URI of the region where the router resides. You must
      specify this field as part of the HTTP request URL. It is not settable
      as a field in the request body.
    selfLink: [Output Only] Server-defined URL for the resource.
  """

  bgp = _messages.MessageField('RouterBgp', 1)
  bgpPeers = _messages.MessageField('RouterBgpPeer', 2, repeated=True)
  creationTimestamp = _messages.StringField(3)
  description = _messages.StringField(4)
  id = _messages.IntegerField(5, variant=_messages.Variant.UINT64)
  interfaces = _messages.MessageField('RouterInterface', 6, repeated=True)
  kind = _messages.StringField(7, default=u'compute#router')
  name = _messages.StringField(8)
  network = _messages.StringField(9)
  region = _messages.StringField(10)
  selfLink = _messages.StringField(11)


class RouterAdvertisedIpRange(_messages.Message):
  r"""Description-tagged IP ranges for the router to advertise.

  Fields:
    description: User-specified description for the IP range.
    range: The IP range to advertise. The value must be a CIDR-formatted
      string.
  """

  description = _messages.StringField(1)
  range = _messages.StringField(2)


class RouterAggregatedList(_messages.Message):
  r"""Contains a list of routers.

  Messages:
    ItemsValue: A list of Router resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Router resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of Router resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of routers.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A RoutersScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('RoutersScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#routerAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Enums:
    AdvertiseModeValueValuesEnum: User-specified flag to indicate which mode
      to use for advertisement.
    AdvertisedGroupsValueListEntryValuesEnum:

  Fields:
    advertiseMode: User-specified flag to indicate which mode to use for
      advertisement.
    advertisedGroups: User-specified list of prefix groups to advertise in
      custom mode. This field can only be populated if advertise_mode is
      CUSTOM and is advertised to all peers of the router. These groups will
      be advertised in addition to any specified prefixes. Leave this field
      blank to advertise no custom groups.
    advertisedIpRanges: User-specified list of individual IP ranges to
      advertise in custom mode. This field can only be populated if
      advertise_mode is CUSTOM and is advertised to all peers of the router.
      These IP ranges will be advertised in addition to any specified groups.
      Leave this field blank to advertise no custom IP ranges.
    asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996 private
      ASN, either 16-bit or 32-bit. The value will be fixed for this router
      resource. All VPN tunnels that link to this router will have the same
      local ASN.
  """

  class AdvertiseModeValueValuesEnum(_messages.Enum):
    r"""User-specified flag to indicate which mode to use for advertisement.

    Values:
      CUSTOM: <no description>
      DEFAULT: <no description>
    """
    CUSTOM = 0
    DEFAULT = 1

  class AdvertisedGroupsValueListEntryValuesEnum(_messages.Enum):
    r"""AdvertisedGroupsValueListEntryValuesEnum enum type.

    Values:
      ALL_SUBNETS: <no description>
    """
    ALL_SUBNETS = 0

  advertiseMode = _messages.EnumField('AdvertiseModeValueValuesEnum', 1)
  advertisedGroups = _messages.EnumField('AdvertisedGroupsValueListEntryValuesEnum', 2, repeated=True)
  advertisedIpRanges = _messages.MessageField('RouterAdvertisedIpRange', 3, repeated=True)
  asn = _messages.IntegerField(4, variant=_messages.Variant.UINT32)


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

  Enums:
    AdvertiseModeValueValuesEnum: User-specified flag to indicate which mode
      to use for advertisement.
    AdvertisedGroupsValueListEntryValuesEnum:
    ManagementTypeValueValuesEnum: [Output Only] Type of how the
      resource/configuration of the BGP peer is managed. MANAGED_BY_USER is
      the default value; MANAGED_BY_ATTACHMENT represents an BGP peer that is
      automatically created for PARTNER interconnectAttachment, Google will
      automatically create/delete this type of BGP peer when the PARTNER
      interconnectAttachment is created/deleted.

  Fields:
    advertiseMode: User-specified flag to indicate which mode to use for
      advertisement.
    advertisedGroups: User-specified list of prefix groups to advertise in
      custom mode. This field can only be populated if advertise_mode is
      CUSTOM and overrides the list defined for the router (in Bgp message).
      These groups will be advertised in addition to any specified prefixes.
      Leave this field blank to advertise no custom groups.
    advertisedIpRanges: User-specified list of individual IP ranges to
      advertise in custom mode. This field can only be populated if
      advertise_mode is CUSTOM and overrides the list defined for the router
      (in Bgp message). These IP ranges will be advertised in addition to any
      specified groups. Leave this field blank to advertise no custom IP
      ranges.
    advertisedRoutePriority: The priority of routes advertised to this BGP
      peer. In the case where there is more than one matching route of maximum
      length, the routes with lowest priority value win.
    interfaceName: Name of the interface the BGP peer is associated with.
    ipAddress: IP address of the interface inside Google Cloud Platform. Only
      IPv4 is supported.
    managementType: [Output Only] Type of how the resource/configuration of
      the BGP peer is managed. MANAGED_BY_USER is the default value;
      MANAGED_BY_ATTACHMENT represents an BGP peer that is automatically
      created for PARTNER interconnectAttachment, Google will automatically
      create/delete this type of BGP peer when the PARTNER
      interconnectAttachment is created/deleted.
    name: Name of this BGP peer. The name must be 1-63 characters long and
      comply with RFC1035.
    peerAsn: Peer BGP Autonomous System Number (ASN). For VPN use case, this
      value can be different for every tunnel.
    peerIpAddress: IP address of the BGP interface outside Google cloud. Only
      IPv4 is supported.
  """

  class AdvertiseModeValueValuesEnum(_messages.Enum):
    r"""User-specified flag to indicate which mode to use for advertisement.

    Values:
      CUSTOM: <no description>
      DEFAULT: <no description>
    """
    CUSTOM = 0
    DEFAULT = 1

  class AdvertisedGroupsValueListEntryValuesEnum(_messages.Enum):
    r"""AdvertisedGroupsValueListEntryValuesEnum enum type.

    Values:
      ALL_SUBNETS: <no description>
    """
    ALL_SUBNETS = 0

  class ManagementTypeValueValuesEnum(_messages.Enum):
    r"""[Output Only] Type of how the resource/configuration of the BGP peer
    is managed. MANAGED_BY_USER is the default value; MANAGED_BY_ATTACHMENT
    represents an BGP peer that is automatically created for PARTNER
    interconnectAttachment, Google will automatically create/delete this type
    of BGP peer when the PARTNER interconnectAttachment is created/deleted.

    Values:
      MANAGED_BY_ATTACHMENT: <no description>
      MANAGED_BY_USER: <no description>
    """
    MANAGED_BY_ATTACHMENT = 0
    MANAGED_BY_USER = 1

  advertiseMode = _messages.EnumField('AdvertiseModeValueValuesEnum', 1)
  advertisedGroups = _messages.EnumField('AdvertisedGroupsValueListEntryValuesEnum', 2, repeated=True)
  advertisedIpRanges = _messages.MessageField('RouterAdvertisedIpRange', 3, repeated=True)
  advertisedRoutePriority = _messages.IntegerField(4, variant=_messages.Variant.UINT32)
  interfaceName = _messages.StringField(5)
  ipAddress = _messages.StringField(6)
  managementType = _messages.EnumField('ManagementTypeValueValuesEnum', 7)
  name = _messages.StringField(8)
  peerAsn = _messages.IntegerField(9, variant=_messages.Variant.UINT32)
  peerIpAddress = _messages.StringField(10)


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

  Enums:
    ManagementTypeValueValuesEnum: [Output Only] Type of how the
      resource/configuration of the interface is managed. MANAGED_BY_USER is
      the default value; MANAGED_BY_ATTACHMENT represents an interface that is
      automatically created for PARTNER type interconnectAttachment, Google
      will automatically create/update/delete this type of interface when the
      PARTNER interconnectAttachment is created/provisioned/deleted.

  Fields:
    ipRange: IP address and range of the interface. The IP range must be in
      the RFC3927 link-local IP space. The value must be a CIDR-formatted
      string, for example: 169.254.0.1/30. NOTE: Do not truncate the address
      as it represents the IP address of the interface.
    linkedInterconnectAttachment: URI of the linked interconnect attachment.
      It must be in the same region as the router. Each interface can have at
      most one linked resource and it could either be a VPN Tunnel or an
      interconnect attachment.
    linkedVpnTunnel: URI of the linked VPN tunnel. It must be in the same
      region as the router. Each interface can have at most one linked
      resource and it could either be a VPN Tunnel or an interconnect
      attachment.
    managementType: [Output Only] Type of how the resource/configuration of
      the interface is managed. MANAGED_BY_USER is the default value;
      MANAGED_BY_ATTACHMENT represents an interface that is automatically
      created for PARTNER type interconnectAttachment, Google will
      automatically create/update/delete this type of interface when the
      PARTNER interconnectAttachment is created/provisioned/deleted.
    name: Name of this interface entry. The name must be 1-63 characters long
      and comply with RFC1035.
  """

  class ManagementTypeValueValuesEnum(_messages.Enum):
    r"""[Output Only] Type of how the resource/configuration of the interface
    is managed. MANAGED_BY_USER is the default value; MANAGED_BY_ATTACHMENT
    represents an interface that is automatically created for PARTNER type
    interconnectAttachment, Google will automatically create/update/delete
    this type of interface when the PARTNER interconnectAttachment is
    created/provisioned/deleted.

    Values:
      MANAGED_BY_ATTACHMENT: <no description>
      MANAGED_BY_USER: <no description>
    """
    MANAGED_BY_ATTACHMENT = 0
    MANAGED_BY_USER = 1

  ipRange = _messages.StringField(1)
  linkedInterconnectAttachment = _messages.StringField(2)
  linkedVpnTunnel = _messages.StringField(3)
  managementType = _messages.EnumField('ManagementTypeValueValuesEnum', 4)
  name = _messages.StringField(5)


class RouterList(_messages.Message):
  r"""Contains a list of Router resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Router resources.
    kind: [Output Only] Type of resource. Always compute#router for routers.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Router', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#routerList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    bestRoutes: Best routes for this router's network.
    bestRoutesForRouter: Best routes learned by this router.
    bgpPeerStatus: A RouterStatusBgpPeerStatus attribute.
    network: URI of the network to which this router belongs.
  """

  bestRoutes = _messages.MessageField('Route', 1, repeated=True)
  bestRoutesForRouter = _messages.MessageField('Route', 2, repeated=True)
  bgpPeerStatus = _messages.MessageField('RouterStatusBgpPeerStatus', 3, repeated=True)
  network = _messages.StringField(4)


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

  Enums:
    StatusValueValuesEnum: Status of the BGP peer: {UP, DOWN}

  Fields:
    advertisedRoutes: Routes that were advertised to the remote BGP peer
    ipAddress: IP address of the local BGP interface.
    linkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
    name: Name of this BGP peer. Unique within the Routers resource.
    numLearnedRoutes: Number of routes learned from the remote BGP Peer.
    peerIpAddress: IP address of the remote BGP interface.
    state: BGP state as specified in RFC1771.
    status: Status of the BGP peer: {UP, DOWN}
    uptime: Time this session has been up. Format: 14 years, 51 weeks, 6 days,
      23 hours, 59 minutes, 59 seconds
    uptimeSeconds: Time this session has been up, in seconds. Format: 145
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""Status of the BGP peer: {UP, DOWN}

    Values:
      DOWN: <no description>
      UNKNOWN: <no description>
      UP: <no description>
    """
    DOWN = 0
    UNKNOWN = 1
    UP = 2

  advertisedRoutes = _messages.MessageField('Route', 1, repeated=True)
  ipAddress = _messages.StringField(2)
  linkedVpnTunnel = _messages.StringField(3)
  name = _messages.StringField(4)
  numLearnedRoutes = _messages.IntegerField(5, variant=_messages.Variant.UINT32)
  peerIpAddress = _messages.StringField(6)
  state = _messages.StringField(7)
  status = _messages.EnumField('StatusValueValuesEnum', 8)
  uptime = _messages.StringField(9)
  uptimeSeconds = _messages.StringField(10)


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

  Fields:
    kind: Type of resource.
    result: A RouterStatus attribute.
  """

  kind = _messages.StringField(1, default=u'compute#routerStatusResponse')
  result = _messages.MessageField('RouterStatus', 2)


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

  Fields:
    resource: Preview of given router.
  """

  resource = _messages.MessageField('Router', 1)


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

  Messages:
    WarningValue: Informational warning which replaces the list of routers
      when the list is empty.

  Fields:
    routers: A list of routers contained in this scope.
    warning: Informational warning which replaces the list of routers when the
      list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of routers when the list
    is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  routers = _messages.MessageField('Router', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Enums:
    ProxyHeaderValueValuesEnum: Specifies the type of proxy header to append
      before sending data to the backend, either NONE or PROXY_V1. The default
      is NONE.

  Fields:
    port: The TCP port number for the health check request. The default value
      is 443. Valid values are 1 through 65535.
    portName: Port name as defined in InstanceGroup#NamedPort#name. If both
      port and port_name are defined, port takes precedence.
    proxyHeader: Specifies the type of proxy header to append before sending
      data to the backend, either NONE or PROXY_V1. The default is NONE.
    request: The application data to send once the SSL connection has been
      established (default value is empty). If both request and response are
      empty, the connection establishment alone will indicate health. The
      request data can only be ASCII.
    response: The bytes to match against the beginning of the response data.
      If left empty (the default value), any response will indicate health.
      The response data can only be ASCII.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""Specifies the type of proxy header to append before sending data to
    the backend, either NONE or PROXY_V1. The default is NONE.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  port = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  portName = _messages.StringField(2)
  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 3)
  request = _messages.StringField(4)
  response = _messages.StringField(5)


class Scheduling(_messages.Message):
  r"""Sets the scheduling options for an Instance.

  Enums:
    OnHostMaintenanceValueValuesEnum: Defines the maintenance behavior for
      this instance. For standard instances, the default behavior is MIGRATE.
      For preemptible instances, the default and only possible behavior is
      TERMINATE. For more information, see Setting Instance Scheduling
      Options.

  Fields:
    automaticRestart: Specifies whether the instance should be automatically
      restarted if it is terminated by Compute Engine (not terminated by a
      user). You can only set the automatic restart option for standard
      instances. Preemptible instances cannot be automatically restarted.  By
      default, this is set to true so an instance is automatically restarted
      if it is terminated by Compute Engine.
    onHostMaintenance: Defines the maintenance behavior for this instance. For
      standard instances, the default behavior is MIGRATE. For preemptible
      instances, the default and only possible behavior is TERMINATE. For more
      information, see Setting Instance Scheduling Options.
    preemptible: Defines whether the instance is preemptible. This can only be
      set during instance creation, it cannot be set or changed after the
      instance has been created.
  """

  class OnHostMaintenanceValueValuesEnum(_messages.Enum):
    r"""Defines the maintenance behavior for this instance. For standard
    instances, the default behavior is MIGRATE. For preemptible instances, the
    default and only possible behavior is TERMINATE. For more information, see
    Setting Instance Scheduling Options.

    Values:
      MIGRATE: <no description>
      TERMINATE: <no description>
    """
    MIGRATE = 0
    TERMINATE = 1

  automaticRestart = _messages.BooleanField(1)
  onHostMaintenance = _messages.EnumField('OnHostMaintenanceValueValuesEnum', 2)
  preemptible = _messages.BooleanField(3)


class SerialPortOutput(_messages.Message):
  r"""An instance's serial console output.

  Fields:
    contents: [Output Only] The contents of the console output.
    kind: [Output Only] Type of the resource. Always compute#serialPortOutput
      for serial port output.
    next: [Output Only] The position of the next byte of content from the
      serial console output. Use this value in the next request as the start
      parameter.
    selfLink: [Output Only] Server-defined URL for this resource.
    start: The starting byte position of the output that was returned. This
      should match the start parameter sent with the request. If the serial
      console output exceeds the size of the buffer, older output will be
      overwritten by newer content and the start values will be mismatched.
  """

  contents = _messages.StringField(1)
  kind = _messages.StringField(2, default=u'compute#serialPortOutput')
  next = _messages.IntegerField(3)
  selfLink = _messages.StringField(4)
  start = _messages.IntegerField(5)


class ServiceAccount(_messages.Message):
  r"""A service account.

  Fields:
    email: Email address of the service account.
    scopes: The list of scopes to be made available for this service account.
  """

  email = _messages.StringField(1)
  scopes = _messages.StringField(2, repeated=True)


class SignedUrlKey(_messages.Message):
  r"""Represents a customer-supplied Signing Key used by Cloud CDN Signed URLs

  Fields:
    keyName: Name of the key. The name must be 1-63 characters long, and
      comply with RFC1035. Specifically, the name must be 1-63 characters long
      and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which
      means the first character must be a lowercase letter, and all following
      characters must be a dash, lowercase letter, or digit, except the last
      character, which cannot be a dash.
    keyValue: 128-bit key value used for signing the URL. The key value must
      be a valid RFC 4648 Section 5 base64url encoded string.
  """

  keyName = _messages.StringField(1)
  keyValue = _messages.StringField(2)


class Snapshot(_messages.Message):
  r"""A persistent disk snapshot resource. (== resource_for beta.snapshots ==)
  (== resource_for v1.snapshots ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the snapshot. This can
      be CREATING, DELETING, FAILED, READY, or UPLOADING.
    StorageBytesStatusValueValuesEnum: [Output Only] An indicator whether
      storageBytes is in a stable state or it is being adjusted as a result of
      shared storage reallocation. This status can either be UPDATING, meaning
      the size of the snapshot is being updated, or UP_TO_DATE, meaning the
      size of the snapshot is up-to-date.

  Messages:
    LabelsValue: Labels to apply to this snapshot. These can be later modified
      by the setLabels method. Label values may be empty.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    diskSizeGb: [Output Only] Size of the snapshot, specified in GB.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#snapshot for
      Snapshot resources.
    labelFingerprint: A fingerprint for the labels being applied to this
      snapshot, which is essentially a hash of the labels set used for
      optimistic locking. The fingerprint is initially generated by Compute
      Engine and changes after every request to modify or update labels. You
      must always provide an up-to-date fingerprint hash in order to update or
      change labels.  To see the latest fingerprint, make a get() request to
      retrieve a snapshot.
    labels: Labels to apply to this snapshot. These can be later modified by
      the setLabels method. Label values may be empty.
    licenseCodes: [Output Only] Integer license codes indicating which
      licenses are attached to this snapshot.
    licenses: [Output Only] A list of public visible licenses that apply to
      this snapshot. This can be because the original image had licenses
      attached (such as a Windows image).
    name: Name of the resource; provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    selfLink: [Output Only] Server-defined URL for the resource.
    snapshotEncryptionKey: Encrypts the snapshot using a customer-supplied
      encryption key.  After you encrypt a snapshot using a customer-supplied
      key, you must provide the same key if you use the image later For
      example, you must provide the encryption key when you create a disk from
      the encrypted snapshot in a future request.  Customer-supplied
      encryption keys do not protect access to metadata of the disk.  If you
      do not provide an encryption key when creating the snapshot, then the
      snapshot will be encrypted using an automatically generated key and you
      do not need to provide a key to use the snapshot later.
    sourceDisk: [Output Only] The source disk used to create this snapshot.
    sourceDiskEncryptionKey: The customer-supplied encryption key of the
      source disk. Required if the source disk is protected by a customer-
      supplied encryption key.
    sourceDiskId: [Output Only] The ID value of the disk used to create this
      snapshot. This value may be used to determine whether the snapshot was
      taken from the current or a previous instance of a given disk name.
    status: [Output Only] The status of the snapshot. This can be CREATING,
      DELETING, FAILED, READY, or UPLOADING.
    storageBytes: [Output Only] A size of the storage used by the snapshot. As
      snapshots share storage, this number is expected to change with snapshot
      creation/deletion.
    storageBytesStatus: [Output Only] An indicator whether storageBytes is in
      a stable state or it is being adjusted as a result of shared storage
      reallocation. This status can either be UPDATING, meaning the size of
      the snapshot is being updated, or UP_TO_DATE, meaning the size of the
      snapshot is up-to-date.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the snapshot. This can be CREATING,
    DELETING, FAILED, READY, or UPLOADING.

    Values:
      CREATING: <no description>
      DELETING: <no description>
      FAILED: <no description>
      READY: <no description>
      UPLOADING: <no description>
    """
    CREATING = 0
    DELETING = 1
    FAILED = 2
    READY = 3
    UPLOADING = 4

  class StorageBytesStatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] An indicator whether storageBytes is in a stable state
    or it is being adjusted as a result of shared storage reallocation. This
    status can either be UPDATING, meaning the size of the snapshot is being
    updated, or UP_TO_DATE, meaning the size of the snapshot is up-to-date.

    Values:
      UPDATING: <no description>
      UP_TO_DATE: <no description>
    """
    UPDATING = 0
    UP_TO_DATE = 1

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Labels to apply to this snapshot. These can be later modified by the
    setLabels method. Label values may be empty.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  diskSizeGb = _messages.IntegerField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#snapshot')
  labelFingerprint = _messages.BytesField(6)
  labels = _messages.MessageField('LabelsValue', 7)
  licenseCodes = _messages.IntegerField(8, repeated=True)
  licenses = _messages.StringField(9, repeated=True)
  name = _messages.StringField(10)
  selfLink = _messages.StringField(11)
  snapshotEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 12)
  sourceDisk = _messages.StringField(13)
  sourceDiskEncryptionKey = _messages.MessageField('CustomerEncryptionKey', 14)
  sourceDiskId = _messages.StringField(15)
  status = _messages.EnumField('StatusValueValuesEnum', 16)
  storageBytes = _messages.IntegerField(17)
  storageBytesStatus = _messages.EnumField('StorageBytesStatusValueValuesEnum', 18)


class SnapshotList(_messages.Message):
  r"""Contains a list of Snapshot resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Snapshot resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Snapshot', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#snapshotList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class SourceInstanceParams(_messages.Message):
  r"""A specification of the parameters to use when creating the instance
  template from a source instance.

  Fields:
    diskConfigs: Attached disks configuration. If not provided, defaults are
      applied: For boot disk and any other R/W disks, new custom images will
      be created from each disk. For read-only disks, they will be attached in
      read-only mode. Local SSD disks will be created as blank volumes.
  """

  diskConfigs = _messages.MessageField('DiskInstantiationConfig', 1, repeated=True)


class SslCertificate(_messages.Message):
  r"""An SslCertificate resource. This resource provides a mechanism to upload
  an SSL key and certificate to the load balancer to serve secure connections
  from the user. (== resource_for beta.sslCertificates ==) (== resource_for
  v1.sslCertificates ==)

  Fields:
    certificate: A local certificate file. The certificate must be in PEM
      format. The certificate chain must be no greater than 5 certs long. The
      chain must include at least one intermediate cert.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#sslCertificate
      for SSL certificates.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    privateKey: A write-only private key in PEM format. Only insert requests
      will include this field.
    selfLink: [Output only] Server-defined URL for the resource.
  """

  certificate = _messages.StringField(1)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#sslCertificate')
  name = _messages.StringField(6)
  privateKey = _messages.StringField(7)
  selfLink = _messages.StringField(8)


class SslCertificateList(_messages.Message):
  r"""Contains a list of SslCertificate resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of SslCertificate resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('SslCertificate', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#sslCertificateList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of SslPolicy resources.
    kind: [Output Only] Type of the resource. Always compute#sslPoliciesList
      for lists of sslPolicies.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('SslPolicy', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#sslPoliciesList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    features: A string attribute.
  """

  features = _messages.StringField(1, repeated=True)


class SslPolicy(_messages.Message):
  r"""A SSL policy specifies the server-side support for SSL features. This
  can be attached to a TargetHttpsProxy or a TargetSslProxy. This affects
  connections between clients and the HTTPS or SSL proxy load balancer. They
  do not affect the connection between the load balancers and the backends.

  Enums:
    MinTlsVersionValueValuesEnum: The minimum version of SSL protocol that can
      be used by the clients to establish a connection with the load balancer.
      This can be one of TLS_1_0, TLS_1_1, TLS_1_2.
    ProfileValueValuesEnum: Profile specifies the set of SSL features that can
      be used by the load balancer when negotiating SSL with clients. This can
      be one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
      the set of SSL features to enable must be specified in the
      customFeatures field.

  Messages:
    WarningsValueListEntry: A WarningsValueListEntry object.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    customFeatures: A list of features enabled when the selected profile is
      CUSTOM. The - method returns the set of features that can be specified
      in this list. This field must be empty if the profile is not CUSTOM.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    enabledFeatures: [Output Only] The list of features enabled in the SSL
      policy.
    fingerprint: Fingerprint of this resource. A hash of the contents stored
      in this object. This field is used in optimistic locking. This field
      will be ignored when inserting a SslPolicy. An up-to-date fingerprint
      must be provided in order to update the SslPolicy.  To see the latest
      fingerprint, make a get() request to retrieve an SslPolicy.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output only] Type of the resource. Always compute#sslPolicyfor SSL
      policies.
    minTlsVersion: The minimum version of SSL protocol that can be used by the
      clients to establish a connection with the load balancer. This can be
      one of TLS_1_0, TLS_1_1, TLS_1_2.
    name: Name of the resource. The name must be 1-63 characters long, and
      comply with RFC1035. Specifically, the name must be 1-63 characters long
      and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which
      means the first character must be a lowercase letter, and all following
      characters must be a dash, lowercase letter, or digit, except the last
      character, which cannot be a dash.
    profile: Profile specifies the set of SSL features that can be used by the
      load balancer when negotiating SSL with clients. This can be one of
      COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of
      SSL features to enable must be specified in the customFeatures field.
    selfLink: [Output Only] Server-defined URL for the resource.
    warnings: [Output Only] If potential misconfigurations are detected for
      this SSL policy, this field will be populated with warning messages.
  """

  class MinTlsVersionValueValuesEnum(_messages.Enum):
    r"""The minimum version of SSL protocol that can be used by the clients to
    establish a connection with the load balancer. This can be one of TLS_1_0,
    TLS_1_1, TLS_1_2.

    Values:
      TLS_1_0: <no description>
      TLS_1_1: <no description>
      TLS_1_2: <no description>
    """
    TLS_1_0 = 0
    TLS_1_1 = 1
    TLS_1_2 = 2

  class ProfileValueValuesEnum(_messages.Enum):
    r"""Profile specifies the set of SSL features that can be used by the load
    balancer when negotiating SSL with clients. This can be one of COMPATIBLE,
    MODERN, RESTRICTED, or CUSTOM. If using CUSTOM, the set of SSL features to
    enable must be specified in the customFeatures field.

    Values:
      COMPATIBLE: <no description>
      CUSTOM: <no description>
      MODERN: <no description>
      RESTRICTED: <no description>
    """
    COMPATIBLE = 0
    CUSTOM = 1
    MODERN = 2
    RESTRICTED = 3

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

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  creationTimestamp = _messages.StringField(1)
  customFeatures = _messages.StringField(2, repeated=True)
  description = _messages.StringField(3)
  enabledFeatures = _messages.StringField(4, repeated=True)
  fingerprint = _messages.BytesField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#sslPolicy')
  minTlsVersion = _messages.EnumField('MinTlsVersionValueValuesEnum', 8)
  name = _messages.StringField(9)
  profile = _messages.EnumField('ProfileValueValuesEnum', 10)
  selfLink = _messages.StringField(11)
  warnings = _messages.MessageField('WarningsValueListEntry', 12, repeated=True)


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

  Fields:
    sslPolicy: URL of the SSL policy resource. Set this to empty string to
      clear any existing SSL policy associated with the target proxy resource.
  """

  sslPolicy = _messages.StringField(1)


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

  Enums:
    AltValueValuesEnum: Data format for the response.

  Fields:
    alt: Data format for the response.
    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: An opaque string that represents a user for quota purposes.
      Must not exceed 40 characters.
    trace: A tracing token of the form "token:<tokenid>" to include in api
      requests.
    userIp: Deprecated. Please use quotaUser instead.
  """

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

    Values:
      json: Responses with Content-Type of application/json
    """
    json = 0

  alt = _messages.EnumField('AltValueValuesEnum', 1, default=u'json')
  fields = _messages.StringField(2)
  key = _messages.StringField(3)
  oauth_token = _messages.StringField(4)
  prettyPrint = _messages.BooleanField(5, default=True)
  quotaUser = _messages.StringField(6)
  trace = _messages.StringField(7)
  userIp = _messages.StringField(8)


class Subnetwork(_messages.Message):
  r"""A Subnetwork resource. (== resource_for beta.subnetworks ==) (==
  resource_for v1.subnetworks ==)

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource. This field can be set only at
      resource creation time.
    enableFlowLogs: Whether to enable flow logging for this subnetwork.
    fingerprint: Fingerprint of this resource. A hash of the contents stored
      in this object. This field is used in optimistic locking. This field
      will be ignored when inserting a Subnetwork. An up-to-date fingerprint
      must be provided in order to update the Subnetwork.  To see the latest
      fingerprint, make a get() request to retrieve a Subnetwork.
    gatewayAddress: [Output Only] The gateway address for default routes to
      reach destination addresses outside this subnetwork.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    ipCidrRange: The range of internal addresses that are owned by this
      subnetwork. Provide this property when you create the subnetwork. For
      example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and non-
      overlapping within a network. Only IPv4 is supported. This field can be
      set only at resource creation time.
    kind: [Output Only] Type of the resource. Always compute#subnetwork for
      Subnetwork resources.
    name: The name of the resource, provided by the client when initially
      creating the resource. The name must be 1-63 characters long, and comply
      with RFC1035. Specifically, the name must be 1-63 characters long and
      match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
      the first character must be a lowercase letter, and all following
      characters must be a dash, lowercase letter, or digit, except the last
      character, which cannot be a dash.
    network: The URL of the network to which this subnetwork belongs, provided
      by the client when initially creating the subnetwork. Only networks that
      are in the distributed mode can have subnetworks. This field can be set
      only at resource creation time.
    privateIpGoogleAccess: Whether the VMs in this subnet can access Google
      services without assigned external IP addresses. This field can be both
      set at resource creation time and updated using
      setPrivateIpGoogleAccess.
    region: URL of the region where the Subnetwork resides. This field can be
      set only at resource creation time.
    secondaryIpRanges: An array of configurations for secondary IP ranges for
      VM instances contained in this subnetwork. The primary IP of such VM
      must belong to the primary ipCidrRange of the subnetwork. The alias IPs
      may belong to either primary or secondary ranges.
    selfLink: [Output Only] Server-defined URL for the resource.
  """

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  enableFlowLogs = _messages.BooleanField(3)
  fingerprint = _messages.BytesField(4)
  gatewayAddress = _messages.StringField(5)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  ipCidrRange = _messages.StringField(7)
  kind = _messages.StringField(8, default=u'compute#subnetwork')
  name = _messages.StringField(9)
  network = _messages.StringField(10)
  privateIpGoogleAccess = _messages.BooleanField(11)
  region = _messages.StringField(12)
  secondaryIpRanges = _messages.MessageField('SubnetworkSecondaryRange', 13, repeated=True)
  selfLink = _messages.StringField(14)


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

  Messages:
    ItemsValue: A list of SubnetworksScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of SubnetworksScopedList resources.
    kind: [Output Only] Type of resource. Always
      compute#subnetworkAggregatedList for aggregated lists of subnetworks.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of SubnetworksScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of
        Subnetworks.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A SubnetworksScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('SubnetworksScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#subnetworkAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class SubnetworkList(_messages.Message):
  r"""Contains a list of Subnetwork resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Subnetwork resources.
    kind: [Output Only] Type of resource. Always compute#subnetworkList for
      lists of subnetworks.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Subnetwork', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#subnetworkList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class SubnetworkSecondaryRange(_messages.Message):
  r"""Represents a secondary IP range of a subnetwork.

  Fields:
    ipCidrRange: The range of IP addresses belonging to this subnetwork
      secondary range. Provide this property when you create the subnetwork.
      Ranges must be unique and non-overlapping with all primary and secondary
      IP ranges within a network. Only IPv4 is supported.
    rangeName: The name associated with this subnetwork secondary range, used
      when adding an alias IP range to a VM instance. The name must be 1-63
      characters long, and comply with RFC1035. The name must be unique within
      the subnetwork.
  """

  ipCidrRange = _messages.StringField(1)
  rangeName = _messages.StringField(2)


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

  Fields:
    ipCidrRange: The IP (in CIDR format or netmask) of internal addresses that
      are legal on this Subnetwork. This range should be disjoint from other
      subnetworks within this network. This range can only be larger than
      (i.e. a superset of) the range previously defined before the update.
  """

  ipCidrRange = _messages.StringField(1)


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

  Messages:
    WarningValue: An informational warning that appears when the list of
      addresses is empty.

  Fields:
    subnetworks: A list of subnetworks contained in this scope.
    warning: An informational warning that appears when the list of addresses
      is empty.
  """

  class WarningValue(_messages.Message):
    r"""An informational warning that appears when the list of addresses is
    empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  subnetworks = _messages.MessageField('Subnetwork', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    privateIpGoogleAccess: A boolean attribute.
  """

  privateIpGoogleAccess = _messages.BooleanField(1)


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

  Enums:
    ProxyHeaderValueValuesEnum: Specifies the type of proxy header to append
      before sending data to the backend, either NONE or PROXY_V1. The default
      is NONE.

  Fields:
    port: The TCP port number for the health check request. The default value
      is 80. Valid values are 1 through 65535.
    portName: Port name as defined in InstanceGroup#NamedPort#name. If both
      port and port_name are defined, port takes precedence.
    proxyHeader: Specifies the type of proxy header to append before sending
      data to the backend, either NONE or PROXY_V1. The default is NONE.
    request: The application data to send once the TCP connection has been
      established (default value is empty). If both request and response are
      empty, the connection establishment alone will indicate health. The
      request data can only be ASCII.
    response: The bytes to match against the beginning of the response data.
      If left empty (the default value), any response will indicate health.
      The response data can only be ASCII.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""Specifies the type of proxy header to append before sending data to
    the backend, either NONE or PROXY_V1. The default is NONE.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  port = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  portName = _messages.StringField(2)
  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 3)
  request = _messages.StringField(4)
  response = _messages.StringField(5)


class Tags(_messages.Message):
  r"""A set of instance tags.

  Fields:
    fingerprint: Specifies a fingerprint for this request, which is
      essentially a hash of the tags' contents and used for optimistic
      locking. The fingerprint is initially generated by Compute Engine and
      changes after every request to modify or update tags. You must always
      provide an up-to-date fingerprint hash in order to update or change
      tags.  To see the latest fingerprint, make get() request to the
      instance.
    items: An array of tags. Each tag must be 1-63 characters long, and comply
      with RFC1035.
  """

  fingerprint = _messages.BytesField(1)
  items = _messages.StringField(2, repeated=True)


class TargetHttpProxy(_messages.Message):
  r"""A TargetHttpProxy resource. This resource defines an HTTP proxy. (==
  resource_for beta.targetHttpProxies ==) (== resource_for
  v1.targetHttpProxies ==)

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of resource. Always compute#targetHttpProxy for
      target HTTP proxies.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    selfLink: [Output Only] Server-defined URL for the resource.
    urlMap: URL to the UrlMap resource that defines the mapping from URL to
      the BackendService.
  """

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(4, default=u'compute#targetHttpProxy')
  name = _messages.StringField(5)
  selfLink = _messages.StringField(6)
  urlMap = _messages.StringField(7)


class TargetHttpProxyList(_messages.Message):
  r"""A list of TargetHttpProxy resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetHttpProxy resources.
    kind: Type of resource. Always compute#targetHttpProxyList for lists of
      target HTTP proxies.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetHttpProxy', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetHttpProxyList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Enums:
    QuicOverrideValueValuesEnum: QUIC policy for the TargetHttpsProxy
      resource.

  Fields:
    quicOverride: QUIC policy for the TargetHttpsProxy resource.
  """

  class QuicOverrideValueValuesEnum(_messages.Enum):
    r"""QUIC policy for the TargetHttpsProxy resource.

    Values:
      DISABLE: <no description>
      ENABLE: <no description>
      NONE: <no description>
    """
    DISABLE = 0
    ENABLE = 1
    NONE = 2

  quicOverride = _messages.EnumField('QuicOverrideValueValuesEnum', 1)


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

  Fields:
    sslCertificates: New set of SslCertificate resources to associate with
      this TargetHttpsProxy resource. Currently exactly one SslCertificate
      resource must be specified.
  """

  sslCertificates = _messages.StringField(1, repeated=True)


class TargetHttpsProxy(_messages.Message):
  r"""A TargetHttpsProxy resource. This resource defines an HTTPS proxy. (==
  resource_for beta.targetHttpsProxies ==) (== resource_for
  v1.targetHttpsProxies ==)

  Enums:
    QuicOverrideValueValuesEnum: Specifies the QUIC override policy for this
      TargetHttpsProxy resource. This determines whether the load balancer
      will attempt to negotiate QUIC with clients or not. Can specify one of
      NONE, ENABLE, or DISABLE. Specify ENABLE to always enable QUIC, Enables
      QUIC when set to ENABLE, and disables QUIC when set to DISABLE. If NONE
      is specified, uses the QUIC policy with no user overrides, which is
      equivalent to DISABLE. Not specifying this field is equivalent to
      specifying NONE.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of resource. Always compute#targetHttpsProxy for
      target HTTPS proxies.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    quicOverride: Specifies the QUIC override policy for this TargetHttpsProxy
      resource. This determines whether the load balancer will attempt to
      negotiate QUIC with clients or not. Can specify one of NONE, ENABLE, or
      DISABLE. Specify ENABLE to always enable QUIC, Enables QUIC when set to
      ENABLE, and disables QUIC when set to DISABLE. If NONE is specified,
      uses the QUIC policy with no user overrides, which is equivalent to
      DISABLE. Not specifying this field is equivalent to specifying NONE.
    selfLink: [Output Only] Server-defined URL for the resource.
    sslCertificates: URLs to SslCertificate resources that are used to
      authenticate connections between users and the load balancer. Currently,
      exactly one SSL certificate must be specified.
    sslPolicy: URL of SslPolicy resource that will be associated with the
      TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
      will not have any SSL policy configured.
    urlMap: A fully-qualified or valid partial URL to the UrlMap resource that
      defines the mapping from URL to the BackendService. For example, the
      following are all valid URLs for specifying a URL map:   -
      https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-
      map  - projects/project/global/urlMaps/url-map  - global/urlMaps/url-map
  """

  class QuicOverrideValueValuesEnum(_messages.Enum):
    r"""Specifies the QUIC override policy for this TargetHttpsProxy resource.
    This determines whether the load balancer will attempt to negotiate QUIC
    with clients or not. Can specify one of NONE, ENABLE, or DISABLE. Specify
    ENABLE to always enable QUIC, Enables QUIC when set to ENABLE, and
    disables QUIC when set to DISABLE. If NONE is specified, uses the QUIC
    policy with no user overrides, which is equivalent to DISABLE. Not
    specifying this field is equivalent to specifying NONE.

    Values:
      DISABLE: <no description>
      ENABLE: <no description>
      NONE: <no description>
    """
    DISABLE = 0
    ENABLE = 1
    NONE = 2

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(4, default=u'compute#targetHttpsProxy')
  name = _messages.StringField(5)
  quicOverride = _messages.EnumField('QuicOverrideValueValuesEnum', 6)
  selfLink = _messages.StringField(7)
  sslCertificates = _messages.StringField(8, repeated=True)
  sslPolicy = _messages.StringField(9)
  urlMap = _messages.StringField(10)


class TargetHttpsProxyList(_messages.Message):
  r"""Contains a list of TargetHttpsProxy resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetHttpsProxy resources.
    kind: Type of resource. Always compute#targetHttpsProxyList for lists of
      target HTTPS proxies.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetHttpsProxy', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetHttpsProxyList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class TargetInstance(_messages.Message):
  r"""A TargetInstance resource. This resource defines an endpoint instance
  that terminates traffic of certain protocols. (== resource_for
  beta.targetInstances ==) (== resource_for v1.targetInstances ==)

  Enums:
    NatPolicyValueValuesEnum: NAT option controlling how IPs are NAT'ed to the
      instance. Currently only NO_NAT (default value) is supported.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    instance: A URL to the virtual machine instance that handles traffic for
      this target instance. When creating a target instance, you can provide
      the fully-qualified URL or a valid partial URL to the desired virtual
      machine. For example, the following are all valid URLs:  - https://www.g
      oogleapis.com/compute/v1/projects/project/zones/zone/instances/instance
      - projects/project/zones/zone/instances/instance  -
      zones/zone/instances/instance
    kind: [Output Only] The type of the resource. Always
      compute#targetInstance for target instances.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    natPolicy: NAT option controlling how IPs are NAT'ed to the instance.
      Currently only NO_NAT (default value) is supported.
    selfLink: [Output Only] Server-defined URL for the resource.
    zone: [Output Only] URL of the zone where the target instance resides. You
      must specify this field as part of the HTTP request URL. It is not
      settable as a field in the request body.
  """

  class NatPolicyValueValuesEnum(_messages.Enum):
    r"""NAT option controlling how IPs are NAT'ed to the instance. Currently
    only NO_NAT (default value) is supported.

    Values:
      NO_NAT: <no description>
    """
    NO_NAT = 0

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  instance = _messages.StringField(4)
  kind = _messages.StringField(5, default=u'compute#targetInstance')
  name = _messages.StringField(6)
  natPolicy = _messages.EnumField('NatPolicyValueValuesEnum', 7)
  selfLink = _messages.StringField(8)
  zone = _messages.StringField(9)


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

  Messages:
    ItemsValue: A list of TargetInstance resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetInstance resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of TargetInstance resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of target
        instances.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A TargetInstancesScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TargetInstancesScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#targetInstanceAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class TargetInstanceList(_messages.Message):
  r"""Contains a list of TargetInstance resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetInstance resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetInstance', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetInstanceList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: Informational warning which replaces the list of addresses
      when the list is empty.

  Fields:
    targetInstances: A list of target instances contained in this scope.
    warning: Informational warning which replaces the list of addresses when
      the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of addresses when the
    list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  targetInstances = _messages.MessageField('TargetInstance', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


class TargetPool(_messages.Message):
  r"""A TargetPool resource. This resource defines a pool of instances, an
  associated HttpHealthCheck resource, and the fallback target pool. (==
  resource_for beta.targetPools ==) (== resource_for v1.targetPools ==)

  Enums:
    SessionAffinityValueValuesEnum: Sesssion affinity option, must be one of
      the following values: NONE: Connections from the same client IP may go
      to any instance in the pool. CLIENT_IP: Connections from the same client
      IP will go to the same instance in the pool while that instance remains
      healthy. CLIENT_IP_PROTO: Connections from the same client IP with the
      same IP protocol will go to the same instance in the pool while that
      instance remains healthy.

  Fields:
    backupPool: This field is applicable only when the containing target pool
      is serving a forwarding rule as the primary pool, and its failoverRatio
      field is properly set to a value between [0, 1].  backupPool and
      failoverRatio together define the fallback behavior of the primary
      target pool: if the ratio of the healthy instances in the primary pool
      is at or below failoverRatio, traffic arriving at the load-balanced IP
      will be directed to the backup pool.  In case where failoverRatio and
      backupPool are not set, or all the instances in the backup pool are
      unhealthy, the traffic will be directed back to the primary pool in the
      "force" mode, where traffic will be spread to the healthy instances with
      the best effort, or to all instances when no instance is healthy.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    failoverRatio: This field is applicable only when the containing target
      pool is serving a forwarding rule as the primary pool (i.e., not as a
      backup pool to some other target pool). The value of the field must be
      in [0, 1].  If set, backupPool must also be set. They together define
      the fallback behavior of the primary target pool: if the ratio of the
      healthy instances in the primary pool is at or below this number,
      traffic arriving at the load-balanced IP will be directed to the backup
      pool.  In case where failoverRatio is not set or all the instances in
      the backup pool are unhealthy, the traffic will be directed back to the
      primary pool in the "force" mode, where traffic will be spread to the
      healthy instances with the best effort, or to all instances when no
      instance is healthy.
    healthChecks: The URL of the HttpHealthCheck resource. A member instance
      in this pool is considered healthy if and only if the health checks
      pass. An empty list means all member instances will be considered
      healthy at all times. Only HttpHealthChecks are supported. Only one
      health check may be specified.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    instances: A list of resource URLs to the virtual machine instances
      serving this pool. They must live in zones contained in the same region
      as this pool.
    kind: [Output Only] Type of the resource. Always compute#targetPool for
      target pools.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    region: [Output Only] URL of the region where the target pool resides.
    selfLink: [Output Only] Server-defined URL for the resource.
    sessionAffinity: Sesssion affinity option, must be one of the following
      values: NONE: Connections from the same client IP may go to any instance
      in the pool. CLIENT_IP: Connections from the same client IP will go to
      the same instance in the pool while that instance remains healthy.
      CLIENT_IP_PROTO: Connections from the same client IP with the same IP
      protocol will go to the same instance in the pool while that instance
      remains healthy.
  """

  class SessionAffinityValueValuesEnum(_messages.Enum):
    r"""Sesssion affinity option, must be one of the following values: NONE:
    Connections from the same client IP may go to any instance in the pool.
    CLIENT_IP: Connections from the same client IP will go to the same
    instance in the pool while that instance remains healthy. CLIENT_IP_PROTO:
    Connections from the same client IP with the same IP protocol will go to
    the same instance in the pool while that instance remains healthy.

    Values:
      CLIENT_IP: <no description>
      CLIENT_IP_PORT_PROTO: <no description>
      CLIENT_IP_PROTO: <no description>
      GENERATED_COOKIE: <no description>
      NONE: <no description>
    """
    CLIENT_IP = 0
    CLIENT_IP_PORT_PROTO = 1
    CLIENT_IP_PROTO = 2
    GENERATED_COOKIE = 3
    NONE = 4

  backupPool = _messages.StringField(1)
  creationTimestamp = _messages.StringField(2)
  description = _messages.StringField(3)
  failoverRatio = _messages.FloatField(4, variant=_messages.Variant.FLOAT)
  healthChecks = _messages.StringField(5, repeated=True)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  instances = _messages.StringField(7, repeated=True)
  kind = _messages.StringField(8, default=u'compute#targetPool')
  name = _messages.StringField(9)
  region = _messages.StringField(10)
  selfLink = _messages.StringField(11)
  sessionAffinity = _messages.EnumField('SessionAffinityValueValuesEnum', 12)


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

  Messages:
    ItemsValue: A list of TargetPool resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetPool resources.
    kind: [Output Only] Type of resource. Always
      compute#targetPoolAggregatedList for aggregated lists of target pools.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of TargetPool resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of target
        pools.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A TargetPoolsScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TargetPoolsScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#targetPoolAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    healthStatus: A HealthStatus attribute.
    kind: [Output Only] Type of resource. Always
      compute#targetPoolInstanceHealth when checking the health of an
      instance.
  """

  healthStatus = _messages.MessageField('HealthStatus', 1, repeated=True)
  kind = _messages.StringField(2, default=u'compute#targetPoolInstanceHealth')


class TargetPoolList(_messages.Message):
  r"""Contains a list of TargetPool resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetPool resources.
    kind: [Output Only] Type of resource. Always compute#targetPoolList for
      lists of target pools.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetPool', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetPoolList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    healthChecks: The HttpHealthCheck to add to the target pool.
  """

  healthChecks = _messages.MessageField('HealthCheckReference', 1, repeated=True)


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

  Fields:
    instances: A full or partial URL to an instance to add to this target
      pool. This can be a full or partial URL. For example, the following are
      valid URLs:   - https://www.googleapis.com/compute/v1/projects/project-
      id/zones/zone/instances/instance-name  - projects/project-
      id/zones/zone/instances/instance-name  - zones/zone/instances/instance-
      name
  """

  instances = _messages.MessageField('InstanceReference', 1, repeated=True)


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

  Fields:
    healthChecks: Health check URL to be removed. This can be a full or valid
      partial URL. For example, the following are valid URLs:   - https://www.
      googleapis.com/compute/beta/projects/project/global/httpHealthChecks
      /health-check  - projects/project/global/httpHealthChecks/health-check
      - global/httpHealthChecks/health-check
  """

  healthChecks = _messages.MessageField('HealthCheckReference', 1, repeated=True)


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

  Fields:
    instances: URLs of the instances to be removed from target pool.
  """

  instances = _messages.MessageField('InstanceReference', 1, repeated=True)


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

  Messages:
    WarningValue: Informational warning which replaces the list of addresses
      when the list is empty.

  Fields:
    targetPools: A list of target pools contained in this scope.
    warning: Informational warning which replaces the list of addresses when
      the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of addresses when the
    list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  targetPools = _messages.MessageField('TargetPool', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    target: A string attribute.
  """

  target = _messages.StringField(1)


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

  Fields:
    service: The URL of the new BackendService resource for the
      targetSslProxy.
  """

  service = _messages.StringField(1)


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

  Enums:
    ProxyHeaderValueValuesEnum: The new type of proxy header to append before
      sending data to the backend. NONE or PROXY_V1 are allowed.

  Fields:
    proxyHeader: The new type of proxy header to append before sending data to
      the backend. NONE or PROXY_V1 are allowed.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""The new type of proxy header to append before sending data to the
    backend. NONE or PROXY_V1 are allowed.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 1)


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

  Fields:
    sslCertificates: New set of URLs to SslCertificate resources to associate
      with this TargetSslProxy. Currently exactly one ssl certificate must be
      specified.
  """

  sslCertificates = _messages.StringField(1, repeated=True)


class TargetSslProxy(_messages.Message):
  r"""A TargetSslProxy resource. This resource defines an SSL proxy. (==
  resource_for beta.targetSslProxies ==) (== resource_for v1.targetSslProxies
  ==)

  Enums:
    ProxyHeaderValueValuesEnum: Specifies the type of proxy header to append
      before sending data to the backend, either NONE or PROXY_V1. The default
      is NONE.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#targetSslProxy
      for target SSL proxies.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    proxyHeader: Specifies the type of proxy header to append before sending
      data to the backend, either NONE or PROXY_V1. The default is NONE.
    selfLink: [Output Only] Server-defined URL for the resource.
    service: URL to the BackendService resource.
    sslCertificates: URLs to SslCertificate resources that are used to
      authenticate connections to Backends. Currently exactly one SSL
      certificate must be specified.
    sslPolicy: URL of SslPolicy resource that will be associated with the
      TargetSslProxy resource. If not set, the TargetSslProxy resource will
      not have any SSL policy configured.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""Specifies the type of proxy header to append before sending data to
    the backend, either NONE or PROXY_V1. The default is NONE.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(4, default=u'compute#targetSslProxy')
  name = _messages.StringField(5)
  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 6)
  selfLink = _messages.StringField(7)
  service = _messages.StringField(8)
  sslCertificates = _messages.StringField(9, repeated=True)
  sslPolicy = _messages.StringField(10)


class TargetSslProxyList(_messages.Message):
  r"""Contains a list of TargetSslProxy resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetSslProxy resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetSslProxy', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetSslProxyList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    service: The URL of the new BackendService resource for the
      targetTcpProxy.
  """

  service = _messages.StringField(1)


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

  Enums:
    ProxyHeaderValueValuesEnum: The new type of proxy header to append before
      sending data to the backend. NONE or PROXY_V1 are allowed.

  Fields:
    proxyHeader: The new type of proxy header to append before sending data to
      the backend. NONE or PROXY_V1 are allowed.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""The new type of proxy header to append before sending data to the
    backend. NONE or PROXY_V1 are allowed.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 1)


class TargetTcpProxy(_messages.Message):
  r"""A TargetTcpProxy resource. This resource defines a TCP proxy. (==
  resource_for beta.targetTcpProxies ==) (== resource_for v1.targetTcpProxies
  ==)

  Enums:
    ProxyHeaderValueValuesEnum: Specifies the type of proxy header to append
      before sending data to the backend, either NONE or PROXY_V1. The default
      is NONE.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#targetTcpProxy
      for target TCP proxies.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    proxyHeader: Specifies the type of proxy header to append before sending
      data to the backend, either NONE or PROXY_V1. The default is NONE.
    selfLink: [Output Only] Server-defined URL for the resource.
    service: URL to the BackendService resource.
  """

  class ProxyHeaderValueValuesEnum(_messages.Enum):
    r"""Specifies the type of proxy header to append before sending data to
    the backend, either NONE or PROXY_V1. The default is NONE.

    Values:
      NONE: <no description>
      PROXY_V1: <no description>
    """
    NONE = 0
    PROXY_V1 = 1

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  id = _messages.IntegerField(3, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(4, default=u'compute#targetTcpProxy')
  name = _messages.StringField(5)
  proxyHeader = _messages.EnumField('ProxyHeaderValueValuesEnum', 6)
  selfLink = _messages.StringField(7)
  service = _messages.StringField(8)


class TargetTcpProxyList(_messages.Message):
  r"""Contains a list of TargetTcpProxy resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetTcpProxy resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetTcpProxy', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetTcpProxyList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class TargetVpnGateway(_messages.Message):
  r"""Represents a Target VPN gateway resource. (== resource_for
  beta.targetVpnGateways ==) (== resource_for v1.targetVpnGateways ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the VPN gateway.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    forwardingRules: [Output Only] A list of URLs to the ForwardingRule
      resources. ForwardingRules are created using
      compute.forwardingRules.insert and associated to a VPN gateway.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of resource. Always compute#targetVpnGateway for
      target VPN gateways.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    network: URL of the network to which this VPN gateway is attached.
      Provided by the client when the VPN gateway is created.
    region: [Output Only] URL of the region where the target VPN gateway
      resides. You must specify this field as part of the HTTP request URL. It
      is not settable as a field in the request body.
    selfLink: [Output Only] Server-defined URL for the resource.
    status: [Output Only] The status of the VPN gateway.
    tunnels: [Output Only] A list of URLs to VpnTunnel resources. VpnTunnels
      are created using compute.vpntunnels.insert method and associated to a
      VPN gateway.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the VPN gateway.

    Values:
      CREATING: <no description>
      DELETING: <no description>
      FAILED: <no description>
      READY: <no description>
    """
    CREATING = 0
    DELETING = 1
    FAILED = 2
    READY = 3

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  forwardingRules = _messages.StringField(3, repeated=True)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(5, default=u'compute#targetVpnGateway')
  name = _messages.StringField(6)
  network = _messages.StringField(7)
  region = _messages.StringField(8)
  selfLink = _messages.StringField(9)
  status = _messages.EnumField('StatusValueValuesEnum', 10)
  tunnels = _messages.StringField(11, repeated=True)


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

  Messages:
    ItemsValue: A list of TargetVpnGateway resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetVpnGateway resources.
    kind: [Output Only] Type of resource. Always compute#targetVpnGateway for
      target VPN gateways.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of TargetVpnGateway resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: [Output Only] Name of the scope containing this
        set of target VPN gateways.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A TargetVpnGatewaysScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('TargetVpnGatewaysScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#targetVpnGatewayAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class TargetVpnGatewayList(_messages.Message):
  r"""Contains a list of TargetVpnGateway resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of TargetVpnGateway resources.
    kind: [Output Only] Type of resource. Always compute#targetVpnGateway for
      target VPN gateways.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('TargetVpnGateway', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#targetVpnGatewayList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: [Output Only] Informational warning which replaces the list
      of addresses when the list is empty.

  Fields:
    targetVpnGateways: [Output Only] A list of target vpn gateways contained
      in this scope.
    warning: [Output Only] Informational warning which replaces the list of
      addresses when the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning which replaces the list of
    addresses when the list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  targetVpnGateways = _messages.MessageField('TargetVpnGateway', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Fields:
    actualService: A string attribute.
    expectedService: A string attribute.
    host: A string attribute.
    path: A string attribute.
  """

  actualService = _messages.StringField(1)
  expectedService = _messages.StringField(2)
  host = _messages.StringField(3)
  path = _messages.StringField(4)


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

  Fields:
    permissions: The set of permissions to check for the 'resource'.
      Permissions with wildcards (such as '*' or 'storage.*') are not allowed.
  """

  permissions = _messages.StringField(1, repeated=True)


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

  Fields:
    permissions: A subset of `TestPermissionsRequest.permissions` that the
      caller is allowed.
  """

  permissions = _messages.StringField(1, repeated=True)


class UrlMap(_messages.Message):
  r"""A UrlMap resource. This resource defines the mapping from URL to the
  BackendService resource, based on the "longest-match" of the URL's host and
  path.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    defaultService: The URL of the BackendService resource if none of the
      hostRules match.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    fingerprint: Fingerprint of this resource. A hash of the contents stored
      in this object. This field is used in optimistic locking. This field
      will be ignored when inserting a UrlMap. An up-to-date fingerprint must
      be provided in order to update the UrlMap.  To see the latest
      fingerprint, make a get() request to retrieve a UrlMap.
    hostRules: The list of HostRules to use against the URL.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#urlMaps for url
      maps.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    pathMatchers: The list of named PathMatchers to use against the URL.
    selfLink: [Output Only] Server-defined URL for the resource.
    tests: The list of expected URL mapping tests. Request to update this
      UrlMap will succeed only if all of the test cases pass. You can specify
      a maximum of 100 tests per UrlMap.
  """

  creationTimestamp = _messages.StringField(1)
  defaultService = _messages.StringField(2)
  description = _messages.StringField(3)
  fingerprint = _messages.BytesField(4)
  hostRules = _messages.MessageField('HostRule', 5, repeated=True)
  id = _messages.IntegerField(6, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(7, default=u'compute#urlMap')
  name = _messages.StringField(8)
  pathMatchers = _messages.MessageField('PathMatcher', 9, repeated=True)
  selfLink = _messages.StringField(10)
  tests = _messages.MessageField('UrlMapTest', 11, repeated=True)


class UrlMapList(_messages.Message):
  r"""Contains a list of UrlMap resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of UrlMap resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('UrlMap', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#urlMapList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Fields:
    urlMap: A string attribute.
  """

  urlMap = _messages.StringField(1)


class UrlMapTest(_messages.Message):
  r"""Message for the expected URL mappings.

  Fields:
    description: Description of this test case.
    host: Host portion of the URL.
    path: Path portion of the URL.
    service: Expected BackendService resource the given URL should be mapped
      to.
  """

  description = _messages.StringField(1)
  host = _messages.StringField(2)
  path = _messages.StringField(3)
  service = _messages.StringField(4)


class UrlMapValidationResult(_messages.Message):
  r"""Message representing the validation result for a UrlMap.

  Fields:
    loadErrors: A string attribute.
    loadSucceeded: Whether the given UrlMap can be successfully loaded. If
      false, 'loadErrors' indicates the reasons.
    testFailures: A TestFailure attribute.
    testPassed: If successfully loaded, this field indicates whether the test
      passed. If false, 'testFailures's indicate the reason of failure.
  """

  loadErrors = _messages.StringField(1, repeated=True)
  loadSucceeded = _messages.BooleanField(2)
  testFailures = _messages.MessageField('TestFailure', 3, repeated=True)
  testPassed = _messages.BooleanField(4)


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

  Fields:
    resource: Content of the UrlMap to be validated.
  """

  resource = _messages.MessageField('UrlMap', 1)


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

  Fields:
    result: A UrlMapValidationResult attribute.
  """

  result = _messages.MessageField('UrlMapValidationResult', 1)


class UsageExportLocation(_messages.Message):
  r"""The location in Cloud Storage and naming method of the daily usage
  report. Contains bucket_name and report_name prefix.

  Fields:
    bucketName: The name of an existing bucket in Cloud Storage where the
      usage report object is stored. The Google Service Account is granted
      write access to this bucket. This can either be the bucket name by
      itself, such as example-bucket, or the bucket name with gs:// or
      https://storage.googleapis.com/ in front of it, such as gs://example-
      bucket.
    reportNamePrefix: An optional prefix for the name of the usage report
      object stored in bucketName. If not supplied, defaults to usage. The
      report is stored as a CSV file named report_name_prefix_gce_YYYYMMDD.csv
      where YYYYMMDD is the day of the usage according to Pacific Time. If you
      supply a prefix, it should conform to Cloud Storage object naming
      conventions.
  """

  bucketName = _messages.StringField(1)
  reportNamePrefix = _messages.StringField(2)


class VpnTunnel(_messages.Message):
  r"""VPN tunnel resource. (== resource_for beta.vpnTunnels ==) (==
  resource_for v1.vpnTunnels ==)

  Enums:
    StatusValueValuesEnum: [Output Only] The status of the VPN tunnel.

  Fields:
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    description: An optional description of this resource. Provide this
      property when you create the resource.
    detailedStatus: [Output Only] Detailed status message for the VPN tunnel.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    ikeVersion: IKE protocol version to use when establishing the VPN tunnel
      with peer VPN gateway. Acceptable IKE versions are 1 or 2. Default
      version is 2.
    kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN
      tunnels.
    localTrafficSelector: Local traffic selector to use when establishing the
      VPN tunnel with peer VPN gateway. The value should be a CIDR formatted
      string, for example: 192.168.0.0/16. The ranges should be disjoint. Only
      IPv4 is supported.
    name: Name of the resource. Provided by the client when the resource is
      created. The name must be 1-63 characters long, and comply with RFC1035.
      Specifically, the name must be 1-63 characters long and match the
      regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
      character must be a lowercase letter, and all following characters must
      be a dash, lowercase letter, or digit, except the last character, which
      cannot be a dash.
    peerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
    region: [Output Only] URL of the region where the VPN tunnel resides. You
      must specify this field as part of the HTTP request URL. It is not
      settable as a field in the request body.
    remoteTrafficSelector: Remote traffic selectors to use when establishing
      the VPN tunnel with peer VPN gateway. The value should be a CIDR
      formatted string, for example: 192.168.0.0/16. The ranges should be
      disjoint. Only IPv4 is supported.
    router: URL of router resource to be used for dynamic routing.
    selfLink: [Output Only] Server-defined URL for the resource.
    sharedSecret: Shared secret used to set the secure session between the
      Cloud VPN gateway and the peer VPN gateway.
    sharedSecretHash: Hash of the shared secret.
    status: [Output Only] The status of the VPN tunnel.
    targetVpnGateway: URL of the Target VPN gateway with which this VPN tunnel
      is associated. Provided by the client when the VPN tunnel is created.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] The status of the VPN tunnel.

    Values:
      ALLOCATING_RESOURCES: <no description>
      AUTHORIZATION_ERROR: <no description>
      DEPROVISIONING: <no description>
      ESTABLISHED: <no description>
      FAILED: <no description>
      FIRST_HANDSHAKE: <no description>
      NEGOTIATION_FAILURE: <no description>
      NETWORK_ERROR: <no description>
      NO_INCOMING_PACKETS: <no description>
      PROVISIONING: <no description>
      REJECTED: <no description>
      WAITING_FOR_FULL_CONFIG: <no description>
    """
    ALLOCATING_RESOURCES = 0
    AUTHORIZATION_ERROR = 1
    DEPROVISIONING = 2
    ESTABLISHED = 3
    FAILED = 4
    FIRST_HANDSHAKE = 5
    NEGOTIATION_FAILURE = 6
    NETWORK_ERROR = 7
    NO_INCOMING_PACKETS = 8
    PROVISIONING = 9
    REJECTED = 10
    WAITING_FOR_FULL_CONFIG = 11

  creationTimestamp = _messages.StringField(1)
  description = _messages.StringField(2)
  detailedStatus = _messages.StringField(3)
  id = _messages.IntegerField(4, variant=_messages.Variant.UINT64)
  ikeVersion = _messages.IntegerField(5, variant=_messages.Variant.INT32)
  kind = _messages.StringField(6, default=u'compute#vpnTunnel')
  localTrafficSelector = _messages.StringField(7, repeated=True)
  name = _messages.StringField(8)
  peerIp = _messages.StringField(9)
  region = _messages.StringField(10)
  remoteTrafficSelector = _messages.StringField(11, repeated=True)
  router = _messages.StringField(12)
  selfLink = _messages.StringField(13)
  sharedSecret = _messages.StringField(14)
  sharedSecretHash = _messages.StringField(15)
  status = _messages.EnumField('StatusValueValuesEnum', 16)
  targetVpnGateway = _messages.StringField(17)


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

  Messages:
    ItemsValue: A list of VpnTunnelsScopedList resources.
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of VpnTunnelsScopedList resources.
    kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN
      tunnels.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ItemsValue(_messages.Message):
    r"""A list of VpnTunnelsScopedList resources.

    Messages:
      AdditionalProperty: An additional property for a ItemsValue object.

    Fields:
      additionalProperties: Name of the scope containing this set of vpn
        tunnels.
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a ItemsValue object.

      Fields:
        key: Name of the additional property.
        value: A VpnTunnelsScopedList attribute.
      """

      key = _messages.StringField(1)
      value = _messages.MessageField('VpnTunnelsScopedList', 2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('ItemsValue', 2)
  kind = _messages.StringField(3, default=u'compute#vpnTunnelAggregatedList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class VpnTunnelList(_messages.Message):
  r"""Contains a list of VpnTunnel resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of VpnTunnel resources.
    kind: [Output Only] Type of resource. Always compute#vpnTunnel for VPN
      tunnels.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('VpnTunnel', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#vpnTunnelList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    WarningValue: Informational warning which replaces the list of addresses
      when the list is empty.

  Fields:
    vpnTunnels: A list of vpn tunnels contained in this scope.
    warning: Informational warning which replaces the list of addresses when
      the list is empty.
  """

  class WarningValue(_messages.Message):
    r"""Informational warning which replaces the list of addresses when the
    list is empty.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  vpnTunnels = _messages.MessageField('VpnTunnel', 1, repeated=True)
  warning = _messages.MessageField('WarningValue', 2)


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

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: [Output Only] A list of shared VPC host project URLs.
    kind: [Output Only] Type of resource. Always compute#xpnHostList for lists
      of shared VPC hosts.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Project', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#xpnHostList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


class XpnResourceId(_messages.Message):
  r"""Service resource (a.k.a service project) ID.

  Enums:
    TypeValueValuesEnum: The type of the service resource.

  Fields:
    id: The ID of the service resource. In the case of projects, this field
      matches the project ID (e.g., my-project), not the project number (e.g.,
      12345678).
    type: The type of the service resource.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""The type of the service resource.

    Values:
      PROJECT: <no description>
      XPN_RESOURCE_TYPE_UNSPECIFIED: <no description>
    """
    PROJECT = 0
    XPN_RESOURCE_TYPE_UNSPECIFIED = 1

  id = _messages.StringField(1)
  type = _messages.EnumField('TypeValueValuesEnum', 2)


class Zone(_messages.Message):
  r"""A Zone resource. (== resource_for beta.zones ==) (== resource_for
  v1.zones ==)

  Enums:
    StatusValueValuesEnum: [Output Only] Status of the zone, either UP or
      DOWN.

  Fields:
    availableCpuPlatforms: [Output Only] Available cpu/platform selections for
      the zone.
    creationTimestamp: [Output Only] Creation timestamp in RFC3339 text
      format.
    deprecated: [Output Only] The deprecation status associated with this
      zone.
    description: [Output Only] Textual description of the resource.
    id: [Output Only] The unique identifier for the resource. This identifier
      is defined by the server.
    kind: [Output Only] Type of the resource. Always compute#zone for zones.
    name: [Output Only] Name of the resource.
    region: [Output Only] Full URL reference to the region which hosts the
      zone.
    selfLink: [Output Only] Server-defined URL for the resource.
    status: [Output Only] Status of the zone, either UP or DOWN.
  """

  class StatusValueValuesEnum(_messages.Enum):
    r"""[Output Only] Status of the zone, either UP or DOWN.

    Values:
      DOWN: <no description>
      UP: <no description>
    """
    DOWN = 0
    UP = 1

  availableCpuPlatforms = _messages.StringField(1, repeated=True)
  creationTimestamp = _messages.StringField(2)
  deprecated = _messages.MessageField('DeprecationStatus', 3)
  description = _messages.StringField(4)
  id = _messages.IntegerField(5, variant=_messages.Variant.UINT64)
  kind = _messages.StringField(6, default=u'compute#zone')
  name = _messages.StringField(7)
  region = _messages.StringField(8)
  selfLink = _messages.StringField(9)
  status = _messages.EnumField('StatusValueValuesEnum', 10)


class ZoneList(_messages.Message):
  r"""Contains a list of zone resources.

  Messages:
    WarningValue: [Output Only] Informational warning message.

  Fields:
    id: [Output Only] Unique identifier for the resource; defined by the
      server.
    items: A list of Zone resources.
    kind: Type of resource.
    nextPageToken: [Output Only] This token allows you to get the next page of
      results for list requests. If the number of results is larger than
      maxResults, use the nextPageToken as a value for the query parameter
      pageToken in the next list request. Subsequent list requests will have
      their own nextPageToken to continue paging through the results.
    selfLink: [Output Only] Server-defined URL for this resource.
    warning: [Output Only] Informational warning message.
  """

  class WarningValue(_messages.Message):
    r"""[Output Only] Informational warning message.

    Enums:
      CodeValueValuesEnum: [Output Only] A warning code, if applicable. For
        example, Compute Engine returns NO_RESULTS_ON_PAGE if there are no
        results in the response.

    Messages:
      DataValueListEntry: A DataValueListEntry object.

    Fields:
      code: [Output Only] A warning code, if applicable. For example, Compute
        Engine returns NO_RESULTS_ON_PAGE if there are no results in the
        response.
      data: [Output Only] Metadata about this warning in key: value format.
        For example: "data": [ { "key": "scope", "value": "zones/us-east1-d" }
      message: [Output Only] A human-readable description of the warning code.
    """

    class CodeValueValuesEnum(_messages.Enum):
      r"""[Output Only] A warning code, if applicable. For example, Compute
      Engine returns NO_RESULTS_ON_PAGE if there are no results in the
      response.

      Values:
        CLEANUP_FAILED: <no description>
        DEPRECATED_RESOURCE_USED: <no description>
        DEPRECATED_TYPE_USED: <no description>
        DISK_SIZE_LARGER_THAN_IMAGE_SIZE: <no description>
        EXPERIMENTAL_TYPE_USED: <no description>
        EXTERNAL_API_WARNING: <no description>
        FIELD_VALUE_OVERRIDEN: <no description>
        INJECTED_KERNELS_DEPRECATED: <no description>
        MISSING_TYPE_DEPENDENCY: <no description>
        NEXT_HOP_ADDRESS_NOT_ASSIGNED: <no description>
        NEXT_HOP_CANNOT_IP_FORWARD: <no description>
        NEXT_HOP_INSTANCE_NOT_FOUND: <no description>
        NEXT_HOP_INSTANCE_NOT_ON_NETWORK: <no description>
        NEXT_HOP_NOT_RUNNING: <no description>
        NOT_CRITICAL_ERROR: <no description>
        NO_RESULTS_ON_PAGE: <no description>
        REQUIRED_TOS_AGREEMENT: <no description>
        RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING: <no description>
        RESOURCE_NOT_DELETED: <no description>
        SCHEMA_VALIDATION_IGNORED: <no description>
        SINGLE_INSTANCE_PROPERTY_TEMPLATE: <no description>
        UNDECLARED_PROPERTIES: <no description>
        UNREACHABLE: <no description>
      """
      CLEANUP_FAILED = 0
      DEPRECATED_RESOURCE_USED = 1
      DEPRECATED_TYPE_USED = 2
      DISK_SIZE_LARGER_THAN_IMAGE_SIZE = 3
      EXPERIMENTAL_TYPE_USED = 4
      EXTERNAL_API_WARNING = 5
      FIELD_VALUE_OVERRIDEN = 6
      INJECTED_KERNELS_DEPRECATED = 7
      MISSING_TYPE_DEPENDENCY = 8
      NEXT_HOP_ADDRESS_NOT_ASSIGNED = 9
      NEXT_HOP_CANNOT_IP_FORWARD = 10
      NEXT_HOP_INSTANCE_NOT_FOUND = 11
      NEXT_HOP_INSTANCE_NOT_ON_NETWORK = 12
      NEXT_HOP_NOT_RUNNING = 13
      NOT_CRITICAL_ERROR = 14
      NO_RESULTS_ON_PAGE = 15
      REQUIRED_TOS_AGREEMENT = 16
      RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING = 17
      RESOURCE_NOT_DELETED = 18
      SCHEMA_VALIDATION_IGNORED = 19
      SINGLE_INSTANCE_PROPERTY_TEMPLATE = 20
      UNDECLARED_PROPERTIES = 21
      UNREACHABLE = 22

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

      Fields:
        key: [Output Only] A key that provides more detail on the warning
          being returned. For example, for warnings where there are no results
          in a list request for a particular zone, this key might be scope and
          the key value might be the zone name. Other examples might be a key
          indicating a deprecated resource and a suggested replacement, or a
          warning about invalid network settings (for example, if an instance
          attempts to perform IP forwarding but is not enabled for IP
          forwarding).
        value: [Output Only] A warning data value corresponding to the key.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    code = _messages.EnumField('CodeValueValuesEnum', 1)
    data = _messages.MessageField('DataValueListEntry', 2, repeated=True)
    message = _messages.StringField(3)

  id = _messages.StringField(1)
  items = _messages.MessageField('Zone', 2, repeated=True)
  kind = _messages.StringField(3, default=u'compute#zoneList')
  nextPageToken = _messages.StringField(4)
  selfLink = _messages.StringField(5)
  warning = _messages.MessageField('WarningValue', 6)


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

  Messages:
    LabelsValue: The labels to set for this resource.

  Fields:
    labelFingerprint: The fingerprint of the previous set of labels for this
      resource, used to detect conflicts. The fingerprint is initially
      generated by Compute Engine and changes after every request to modify or
      update labels. You must always provide an up-to-date fingerprint hash in
      order to update or change labels. Make a get() request to the resource
      to get the latest fingerprint.
    labels: The labels to set for this resource.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""The labels to set for this resource.

    Messages:
      AdditionalProperty: An additional property for a LabelsValue object.

    Fields:
      additionalProperties: Additional properties of type LabelsValue
    """

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a LabelsValue object.

      Fields:
        key: Name of the additional property.
        value: A string attribute.
      """

      key = _messages.StringField(1)
      value = _messages.StringField(2)

    additionalProperties = _messages.MessageField('AdditionalProperty', 1, repeated=True)

  labelFingerprint = _messages.BytesField(1)
  labels = _messages.MessageField('LabelsValue', 2)


