"""Generated message classes for networkmanagement version v1alpha1.

The Network Management API provides a collection of network performance
monitoring and diagnostic capabilities.
"""
# 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
from apitools.base.py import extra_types


package = 'networkmanagement'


class Appliance(_messages.Message):
  r"""Appliance represents a deployable unit within 3P integration manager.

  Enums:
    TypeValueValuesEnum: Required. The type of the networked Appliance being
      deployed. Used to capture potential differences in deployments between
      types of appliances. Currently only FIREWALL OUT OF BAND deployment is
      supported now, but future values may include SWG (secure web gateway) or
      WAF (web application firewall) with both in-line and Out of band
      deployments.

  Messages:
    AnnotationsValue: Optional. Set of annotations ( ) to allow for custom
      metadata associated with the Appliance resource.

  Fields:
    annotations: Optional. Set of annotations ( ) to allow for custom metadata
      associated with the Appliance resource.
    createTime: Output only. The timestamp when the resource was created.
    description: Optional. A text description of the third party appliance
      resource. Might include details such as product features, vendor
      information, and pricing. Character set is UTF-8 and is limited to 4096
      characters.
    displayName: Optional. Name of the third party appliance.
    eulaUri: Optional. A URL to the End User License Agreement provided by the
      third party appliance vendor.
    externalLicenseInfo: Optional. Information about the License type of the
      third party appliance.
    imageVersion: Optional. Version of the Vendor Image of the Firewall VM to
      be deployed, e.g.: 9.1.3
    name: Required. Name of the Appliance resource. It matches the pattern
      `projects/{project}/locations/{location}/appliances/` and must be
      unique.
    partner: Optional. Name of the third party vendor providing the appliance.
    type: Required. The type of the networked Appliance being deployed. Used
      to capture potential differences in deployments between types of
      appliances. Currently only FIREWALL OUT OF BAND deployment is supported
      now, but future values may include SWG (secure web gateway) or WAF (web
      application firewall) with both in-line and Out of band deployments.
    updateTime: Output only. The timestamp when the resource was updated.
  """

  class TypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the networked Appliance being deployed. Used to
    capture potential differences in deployments between types of appliances.
    Currently only FIREWALL OUT OF BAND deployment is supported now, but
    future values may include SWG (secure web gateway) or WAF (web application
    firewall) with both in-line and Out of band deployments.

    Values:
      TYPE_UNSPECIFIED: Default value.
      OUT_OF_BAND_FIREWALL: A firewall appliance deployed out of band.
      INLINE_FIREWALL: A firewall appliance deployed inline.
    """
    TYPE_UNSPECIFIED = 0
    OUT_OF_BAND_FIREWALL = 1
    INLINE_FIREWALL = 2

  @encoding.MapUnrecognizedFields('additionalProperties')
  class AnnotationsValue(_messages.Message):
    r"""Optional. Set of annotations ( ) to allow for custom metadata
    associated with the Appliance resource.

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

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

    class AdditionalProperty(_messages.Message):
      r"""An additional property for a AnnotationsValue 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)

  annotations = _messages.MessageField('AnnotationsValue', 1)
  createTime = _messages.StringField(2)
  description = _messages.StringField(3)
  displayName = _messages.StringField(4)
  eulaUri = _messages.StringField(5)
  externalLicenseInfo = _messages.StringField(6)
  imageVersion = _messages.StringField(7)
  name = _messages.StringField(8)
  partner = _messages.StringField(9)
  type = _messages.EnumField('TypeValueValuesEnum', 10)
  updateTime = _messages.StringField(11)


class CancelOperationRequest(_messages.Message):
  r"""The request message for Operations.CancelOperation."""


class Deployment(_messages.Message):
  r"""Deployment represents information about a third party appliance
  deployment.

  Fields:
    mirroredTrafficConfig: Config to include if deployment will an out-of-band
      topology.
    name: Required. Name of the Deployment resource. It matches the pattern
      `projects/{project}/locations/{location}/deployments/{deployment}` and
      must be unique.
  """

  mirroredTrafficConfig = _messages.MessageField('OutOfBandDeploymentConfig', 1)
  name = _messages.StringField(2)


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



class GenerateMonitoringPointConfigResponse(_messages.Message):
  r"""Message for response for getting Monitoring Point configuration of a
  NetworkMonitoringProvider resource.

  Messages:
    ConfigValue: The Monitoring Point configuration of the provider in JSON
      format.

  Fields:
    config: The Monitoring Point configuration of the provider in JSON format.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ConfigValue(_messages.Message):
    r"""The Monitoring Point configuration of the provider in JSON format.

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

    Fields:
      additionalProperties: Properties of the object.
    """

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

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

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

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

  config = _messages.MessageField('ConfigValue', 1)


class GenerateProviderAccessTokenResponse(_messages.Message):
  r"""Message for response for generating an access token for a
  NetworkMonitoringProvider resource.

  Fields:
    providerAccessToken: Provider access token for the
      NetworkMonitoringProvider resource.
  """

  providerAccessToken = _messages.StringField(1)


class GeoLocation(_messages.Message):
  r"""The geographical location of the MonitoringPoint.

  Fields:
    formattedAddress: Formatted address.
    regionCode: Unicode CLDR region code.
  """

  formattedAddress = _messages.StringField(1)
  regionCode = _messages.StringField(2)


class Host(_messages.Message):
  r"""Message describing information about the host.

  Fields:
    cloudInstanceId: Output only. The cloud instance id of the host.
    cloudProjectId: Output only. The cloud project id of the host.
    cloudProvider: Output only. The cloud provider of the host.
    cloudRegion: Output only. The cloud region of the host.
    cloudVirtualNetworkIds: Output only. The ids of cloud virtual networks of
      the host.
    cloudZone: Output only. The cloud zone of the host.
    os: Output only. The operating system of the host.
  """

  cloudInstanceId = _messages.StringField(1)
  cloudProjectId = _messages.StringField(2)
  cloudProvider = _messages.StringField(3)
  cloudRegion = _messages.StringField(4)
  cloudVirtualNetworkIds = _messages.StringField(5, repeated=True)
  cloudZone = _messages.StringField(6)
  os = _messages.StringField(7)


class HttpBody(_messages.Message):
  r"""Message that represents an arbitrary HTTP body. It should only be used
  for payload formats that can't be represented as JSON, such as raw binary or
  an HTML page. This message can be used both in streaming and non-streaming
  API methods in the request as well as the response. It can be used as a top-
  level request field, which is convenient if one wants to extract parameters
  from either the URL or HTTP template into the request fields and also want
  access to the raw HTTP body. Example: message GetResourceRequest { // A
  unique request id. string request_id = 1; // The raw HTTP body is bound to
  this field. google.api.HttpBody http_body = 2; } service ResourceService {
  rpc GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc
  UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); }
  Example with streaming methods: service CaldavService { rpc
  GetCalendar(stream google.api.HttpBody) returns (stream
  google.api.HttpBody); rpc UpdateCalendar(stream google.api.HttpBody) returns
  (stream google.api.HttpBody); } Use of this type only changes how the
  request and response bodies are handled, all other features will continue to
  work unchanged.

  Messages:
    ExtensionsValueListEntry: A ExtensionsValueListEntry object.

  Fields:
    contentType: The HTTP Content-Type header value specifying the content
      type of the body.
    data: The HTTP request/response body as raw binary.
    extensions: Application specific response metadata. Must be set in the
      first response for streaming APIs.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ExtensionsValueListEntry(_messages.Message):
    r"""A ExtensionsValueListEntry object.

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

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

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

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

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

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

  contentType = _messages.StringField(1)
  data = _messages.BytesField(2)
  extensions = _messages.MessageField('ExtensionsValueListEntry', 3, repeated=True)


class ListAppliancesResponse(_messages.Message):
  r"""The list of appliances as requested by the user.

  Fields:
    appliances: List of Appliance resources.
    nextPageToken: If there might be more results than those appearing in this
      response, then `next_page_token` is included. To get the next set of
      results, call this method again using the value of `next_page_token` as
      `page_token`.
  """

  appliances = _messages.MessageField('Appliance', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListDeploymentsResponse(_messages.Message):
  r"""The list of deployments as requested by the user.

  Fields:
    deployments: List of Deployment resources.
    nextPageToken: If there might be more results than those appearing in this
      response, then `next_page_token` is included. To get the next set of
      results, call this method again using the value of `next_page_token` as
      `page_token`.
  """

  deployments = _messages.MessageField('Deployment', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListLocationsResponse(_messages.Message):
  r"""The response message for Locations.ListLocations.

  Fields:
    locations: A list of locations that matches the specified filter in the
      request.
    nextPageToken: The standard List next-page token.
  """

  locations = _messages.MessageField('Location', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListMonitoringPointsResponse(_messages.Message):
  r"""Message for response to listing MonitoringPoints

  Fields:
    monitoringPoints: The list of MonitoringPoints.
    nextPageToken: A token identifying a page of results the server should
      return.
  """

  monitoringPoints = _messages.MessageField('MonitoringPoint', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListNetworkMonitoringProvidersResponse(_messages.Message):
  r"""Message for response to listing NetworkMonitoringProviders

  Fields:
    networkMonitoringProviders: The list of NetworkMonitoringProvider
    nextPageToken: A token identifying a page of results the server should
      return.
  """

  networkMonitoringProviders = _messages.MessageField('NetworkMonitoringProvider', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListNetworkPathsResponse(_messages.Message):
  r"""Message for response to listing NetworkPaths

  Fields:
    networkPaths: The list of NetworkPath
    nextPageToken: A token identifying a page of results the server should
      return.
  """

  networkPaths = _messages.MessageField('NetworkPath', 1, repeated=True)
  nextPageToken = _messages.StringField(2)


class ListOperationsResponse(_messages.Message):
  r"""The response message for Operations.ListOperations.

  Fields:
    nextPageToken: The standard List next-page token.
    operations: A list of operations that matches the specified filter in the
      request.
    unreachable: Unordered list. Unreachable resources. Populated when the
      request sets `ListOperationsRequest.return_partial_success` and reads
      across collections. For example, when attempting to list all resources
      across all supported locations.
  """

  nextPageToken = _messages.StringField(1)
  operations = _messages.MessageField('Operation', 2, repeated=True)
  unreachable = _messages.StringField(3, repeated=True)


class ListWebPathsResponse(_messages.Message):
  r"""Message for response to listing WebPaths

  Fields:
    nextPageToken: A token identifying a page of results the server should
      return.
    webPaths: The list of WebPath.
  """

  nextPageToken = _messages.StringField(1)
  webPaths = _messages.MessageField('WebPath', 2, repeated=True)


class Location(_messages.Message):
  r"""A resource that represents a Google Cloud location.

  Messages:
    LabelsValue: Cross-service attributes for the location. For example
      {"cloud.googleapis.com/region": "us-east1"}
    MetadataValue: Service-specific metadata. For example the available
      capacity at the given location.

  Fields:
    displayName: The friendly name for this location, typically a nearby city
      name. For example, "Tokyo".
    labels: Cross-service attributes for the location. For example
      {"cloud.googleapis.com/region": "us-east1"}
    locationId: The canonical id for this location. For example: `"us-east1"`.
    metadata: Service-specific metadata. For example the available capacity at
      the given location.
    name: Resource name for the location, which may vary between
      implementations. For example: `"projects/example-project/locations/us-
      east1"`
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class LabelsValue(_messages.Message):
    r"""Cross-service attributes for the location. For example
    {"cloud.googleapis.com/region": "us-east1"}

    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)

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Service-specific metadata. For example the available capacity at the
    given location.

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

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

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

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

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

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

  displayName = _messages.StringField(1)
  labels = _messages.MessageField('LabelsValue', 2)
  locationId = _messages.StringField(3)
  metadata = _messages.MessageField('MetadataValue', 4)
  name = _messages.StringField(5)


class MonitoringPoint(_messages.Message):
  r"""Message describing MonitoringPoint resource.

  Enums:
    ConnectionStatusValueValuesEnum: Output only. Connection status of the
      MonitoringPoint.
    DeploymentTypeValueValuesEnum: Output only. The deployment type of the
      MonitoringPoint.
    ErrorsValueListEntryValuesEnum:
    UpgradeTypeValueValuesEnum: Output only. The type of upgrade available for
      the MonitoringPoint.

  Fields:
    autoGeoLocationEnabled: Output only. Indicates if automaitic geographic
      location is enabled for the MonitoringPoint.
    connectionStatus: Output only. Connection status of the MonitoringPoint.
    createTime: Output only. The time the MonitoringPoint was created.
    deploymentType: Output only. The deployment type of the MonitoringPoint.
    displayName: Output only. Display name of the MonitoringPoint.
    errors: Output only. The codes of errors detected in the MonitoringPoint.
    geoLocation: Output only. The geographical location of the
      MonitoringPoint. ;
    guid: Output only. The GUID of the MonitoringPoint.
    host: Output only. The host information of the MonitoringPoint.
    hostname: Output only. The hostname of the MonitoringPoint.
    name: Identifier. Name of the resource. Format: `projects/{project}/locati
      ons/{location}/networkMonitoringProviders/{network_monitoring_provider}/
      monitoringPoints/{monitoring_point}`
    networkInterfaces: Output only. The network interfaces of the
      MonitoringPoint.
    originatingIp: Output only. IP address visible when MonitoringPoint
      connects to the provider.
    providerTags: Output only. The provider tags of the MonitoringPoint.
    type: Output only. Deployment type of the MonitoringPoint.
    updateTime: Output only. The time the MonitoringPoint was updated.
    upgradeAvailable: Output only. Indicates if an upgrade is available for
      the MonitoringPoint.
    upgradeType: Output only. The type of upgrade available for the
      MonitoringPoint.
    version: Output only. Version of the software running on the
      MonitoringPoint.
  """

  class ConnectionStatusValueValuesEnum(_messages.Enum):
    r"""Output only. Connection status of the MonitoringPoint.

    Values:
      CONNECTION_STATUS_UNSPECIFIED: The default value. This value is used if
        the status is omitted.
      ONLINE: MonitoringPoint is online.
      OFFLINE: MonitoringPoint is offline.
    """
    CONNECTION_STATUS_UNSPECIFIED = 0
    ONLINE = 1
    OFFLINE = 2

  class DeploymentTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The deployment type of the MonitoringPoint.

    Values:
      DEPLOYMENT_TYPE_UNSPECIFIED: The default value. This value is used if
        the type is omitted.
      DOCKER: The MonitoringPoint is deployed as a Docker container.
      PODMAN: The MonitoringPoint is deployed as a Podman container.
      HELM: The MonitoringPoint is deployed as a Helm chart.
    """
    DEPLOYMENT_TYPE_UNSPECIFIED = 0
    DOCKER = 1
    PODMAN = 2
    HELM = 3

  class ErrorsValueListEntryValuesEnum(_messages.Enum):
    r"""ErrorsValueListEntryValuesEnum enum type.

    Values:
      ERROR_CODE_UNSPECIFIED: The default value. This value is used if the
        error code is omitted.
      NTP_ERROR: Error detected in NTP service.
      UPGRADE_ERROR: Error detected during the upgrade process.
      DOWNLOAD_FAILED: Error detected while downloading.
    """
    ERROR_CODE_UNSPECIFIED = 0
    NTP_ERROR = 1
    UPGRADE_ERROR = 2
    DOWNLOAD_FAILED = 3

  class UpgradeTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The type of upgrade available for the MonitoringPoint.

    Values:
      UPGRADE_TYPE_UNSPECIFIED: The default value. This value is used if the
        upgrade type is omitted.
      MANUAL: Upgrades are performed manually.
      MANAGED: Upgrades are managed.
      SCHEDULED: Upgrade is scheduled.
      AUTO: Upgrades are performed automatically.
      EXTERNAL: Upgrades are performed externally.
    """
    UPGRADE_TYPE_UNSPECIFIED = 0
    MANUAL = 1
    MANAGED = 2
    SCHEDULED = 3
    AUTO = 4
    EXTERNAL = 5

  autoGeoLocationEnabled = _messages.BooleanField(1)
  connectionStatus = _messages.EnumField('ConnectionStatusValueValuesEnum', 2)
  createTime = _messages.StringField(3)
  deploymentType = _messages.EnumField('DeploymentTypeValueValuesEnum', 4)
  displayName = _messages.StringField(5)
  errors = _messages.EnumField('ErrorsValueListEntryValuesEnum', 6, repeated=True)
  geoLocation = _messages.MessageField('GeoLocation', 7)
  guid = _messages.StringField(8)
  host = _messages.MessageField('Host', 9)
  hostname = _messages.StringField(10)
  name = _messages.StringField(11)
  networkInterfaces = _messages.MessageField('NetworkInterface', 12, repeated=True)
  originatingIp = _messages.StringField(13)
  providerTags = _messages.MessageField('ProviderTag', 14, repeated=True)
  type = _messages.StringField(15)
  updateTime = _messages.StringField(16)
  upgradeAvailable = _messages.BooleanField(17)
  upgradeType = _messages.EnumField('UpgradeTypeValueValuesEnum', 18)
  version = _messages.StringField(19)


class NetworkInterface(_messages.Message):
  r"""Message describing network interfaces.

  Fields:
    adapterDescription: Output only. The description of the interface.
    cidr: Output only. The IP address of the interface and subnet mask in CIDR
      format. Examples: 192.168.1.0/24, 2001:db8::/32
    interfaceName: Output only. The name of the network interface. Examples:
      eth0, eno1
    ipAddress: Output only. The IP address of the interface.
    macAddress: Output only. The MAC address of the interface.
    speed: Output only. Speed of the interface in millions of bits per second.
    vlanId: Output only. The id of the VLAN.
  """

  adapterDescription = _messages.StringField(1)
  cidr = _messages.StringField(2)
  interfaceName = _messages.StringField(3)
  ipAddress = _messages.StringField(4)
  macAddress = _messages.StringField(5)
  speed = _messages.IntegerField(6)
  vlanId = _messages.IntegerField(7)


class NetworkMonitoringProvider(_messages.Message):
  r"""Message describing NetworkMonitoringProvider resource.

  Enums:
    ProviderTypeValueValuesEnum: Required. Type of the
      NetworkMonitoringProvider.
    StateValueValuesEnum: Output only. State of the NetworkMonitoringProvider.

  Fields:
    createTime: Output only. The time the NetworkMonitoringProvider was
      created.
    errors: Output only. The list of error messages detected for the
      NetworkMonitoringProvider.
    name: Output only. Identifier. Name of the resource. Format: `projects/{pr
      oject}/locations/{location}/networkMonitoringProviders/{network_monitori
      ng_provider}`
    providerType: Required. Type of the NetworkMonitoringProvider.
    providerUri: Output only. Link to the provider's UI.
    state: Output only. State of the NetworkMonitoringProvider.
    updateTime: Output only. The time the NetworkMonitoringProvider was
      updated.
  """

  class ProviderTypeValueValuesEnum(_messages.Enum):
    r"""Required. Type of the NetworkMonitoringProvider.

    Values:
      PROVIDER_TYPE_UNSPECIFIED: The default value. This value is used if the
        type is omitted.
      EXTERNAL: External provider.
    """
    PROVIDER_TYPE_UNSPECIFIED = 0
    EXTERNAL = 1

  class StateValueValuesEnum(_messages.Enum):
    r"""Output only. State of the NetworkMonitoringProvider.

    Values:
      STATE_UNSPECIFIED: The default value. This value is used if the status
        is omitted.
      ACTIVATING: NetworkMonitoringProvider is being activated.
      ACTIVE: NetworkMonitoringProvider is active.
      SUSPENDING: NetworkMonitoringProvider is being suspended.
      SUSPENDED: NetworkMonitoringProvider is suspended.
      DELETING: NetworkMonitoringProvider is being deleted.
      DELETED: NetworkMonitoringProvider is deleted.
    """
    STATE_UNSPECIFIED = 0
    ACTIVATING = 1
    ACTIVE = 2
    SUSPENDING = 3
    SUSPENDED = 4
    DELETING = 5
    DELETED = 6

  createTime = _messages.StringField(1)
  errors = _messages.StringField(2, repeated=True)
  name = _messages.StringField(3)
  providerType = _messages.EnumField('ProviderTypeValueValuesEnum', 4)
  providerUri = _messages.StringField(5)
  state = _messages.EnumField('StateValueValuesEnum', 6)
  updateTime = _messages.StringField(7)


class NetworkPath(_messages.Message):
  r"""Message describing NetworkPath resource.

  Enums:
    MonitoringStatusValueValuesEnum: Output only. The monitoring status of the
      network path.
    NetworkProtocolValueValuesEnum: Output only. The network protocol of the
      network path.

  Fields:
    createTime: Output only. The time the NetworkPath was created.
    destination: Output only. IP address or hostname of the network path
      destination.
    destinationGeoLocation: Output only. Geographical location of the
      destination MonitoringPoint. ;
    destinationMonitoringPointId: Output only. Provider's UUID of the
      destination MonitoringPoint. This id may not point to a resource in the
      Google Cloud.
    displayName: Output only. The display name of the network path.
    dualEnded: Output only. Indicates if the network path is dual ended. When
      true, the network path is measured both: from both source to
      destination, and from destination to source. When false, the network
      path is measured from the source through the destination back to the
      source (round trip measurement).
    monitoringEnabled: Output only. Is monitoring enabled for the network
      path.
    monitoringPolicyDisplayName: Output only. Display name of the monitoring
      policy.
    monitoringPolicyId: Output only. ID of monitoring policy.
    monitoringStatus: Output only. The monitoring status of the network path.
    name: Identifier. Name of the resource. Format: `projects/{project}/locati
      ons/{location}/networkMonitoringProviders/{network_monitoring_provider}/
      networkPaths/{network_path}`
    networkProtocol: Output only. The network protocol of the network path.
    providerTags: Output only. The provider tags of the network path.
    providerUiUri: Output only. Link to provider's UI; link shows the
      NetworkPath.
    sourceMonitoringPointId: Output only. Provider's UUID of the source
      MonitoringPoint. This id may not point to a resource in the Google
      Cloud.
    updateTime: Output only. The time the NetworkPath was updated.
  """

  class MonitoringStatusValueValuesEnum(_messages.Enum):
    r"""Output only. The monitoring status of the network path.

    Values:
      MONITORING_STATUS_UNSPECIFIED: The default value. This value is used if
        the status is omitted.
      MONITORING: Monitoring is enabled.
      POLICY_MISMATCH: Policy is mismatched.
      MONITORING_POINT_OFFLINE: Monitoring point is offline.
      DISABLED: Monitoring is disabled.
    """
    MONITORING_STATUS_UNSPECIFIED = 0
    MONITORING = 1
    POLICY_MISMATCH = 2
    MONITORING_POINT_OFFLINE = 3
    DISABLED = 4

  class NetworkProtocolValueValuesEnum(_messages.Enum):
    r"""Output only. The network protocol of the network path.

    Values:
      NETWORK_PROTOCOL_UNSPECIFIED: The default value. This value is used if
        the network protocol is omitted.
      ICMP: ICMP.
      UDP: UDP.
      TCP: TCP.
    """
    NETWORK_PROTOCOL_UNSPECIFIED = 0
    ICMP = 1
    UDP = 2
    TCP = 3

  createTime = _messages.StringField(1)
  destination = _messages.StringField(2)
  destinationGeoLocation = _messages.MessageField('GeoLocation', 3)
  destinationMonitoringPointId = _messages.StringField(4)
  displayName = _messages.StringField(5)
  dualEnded = _messages.BooleanField(6)
  monitoringEnabled = _messages.BooleanField(7)
  monitoringPolicyDisplayName = _messages.StringField(8)
  monitoringPolicyId = _messages.StringField(9)
  monitoringStatus = _messages.EnumField('MonitoringStatusValueValuesEnum', 10)
  name = _messages.StringField(11)
  networkProtocol = _messages.EnumField('NetworkProtocolValueValuesEnum', 12)
  providerTags = _messages.MessageField('ProviderTag', 13, repeated=True)
  providerUiUri = _messages.StringField(14)
  sourceMonitoringPointId = _messages.StringField(15)
  updateTime = _messages.StringField(16)


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

  Fields:
    name: Required. A name of the Appliance to get. Must be in the format
      `projects/{project}/locations/{location}/appliances/{appliance}`.
  """

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


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

  Fields:
    pageSize: Maximum number of Appliances to return per call.
    pageToken: The value returned by the last `ListAppliancesResponse`
      Indicates that this is a continuation of a prior `ListAppliances` call,
      and that the system should return the next page of data.
    parent: Required. The project and location from which the Appliance should
      be listed, specified in the format
      `projects/{project}/locations/{location}`.
  """

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


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

  Fields:
    deployment: A Deployment resource to be passed as the request body.
    deploymentId: The identifier for this deployment instance.
    parent: Required. The project and location where the Deployment should be
      created, specified in the format
      `projects/{project}/locations/{location}`.
  """

  deployment = _messages.MessageField('Deployment', 1)
  deploymentId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    name: Required. name of the deployment to be deleted
  """

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


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

  Fields:
    name: Required. The name of the Deployment to get. Must be in the format
      `projects/{project}/locations/{location}/deployments/{deployment}`.
  """

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


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

  Fields:
    pageSize: Maximum number of Deployments to return per call. If
      unspecified, will default to 10. The maximum value is 1000; values above
      1000 will be coerced to 1000.
    pageToken: The value returned by the last `ListDeploymentsResponse`
      Indicates that this is a continuation of a prior `ListDeployments` call,
      and that the system should return the next page of data.
    parent: Required. The project and location from which the Deployments
      should be listed, specified in the format
      `projects/{project}/locations/{location}`.
  """

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


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

  Fields:
    deployment: A Deployment resource to be passed as the request body.
    name: Required. Name of the Deployment resource. It matches the pattern
      `projects/{project}/locations/{location}/deployments/{deployment}` and
      must be unique.
    updateMask: update mask
  """

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


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

  Fields:
    name: Resource name for the location.
  """

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


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

  Fields:
    extraLocationTypes: Optional. Do not use this field unless explicitly
      documented otherwise. This is primarily for internal usage.
    filter: A filter to narrow down results to a preferred subset. The
      filtering language accepts strings like `"displayName=tokyo"`, and is
      documented in more detail in [AIP-160](https://google.aip.dev/160).
    includeUnrevealedLocations: If true, the returned list will include
      locations which are not yet revealed.
    name: The resource that owns the locations collection, if applicable.
    pageSize: The maximum number of results to return. If not set, the service
      selects a default.
    pageToken: A page token received from the `next_page_token` field in the
      response. Send that page token to receive the subsequent page.
  """

  extraLocationTypes = _messages.StringField(1, repeated=True)
  filter = _messages.StringField(2)
  includeUnrevealedLocations = _messages.BooleanField(3)
  name = _messages.StringField(4, required=True)
  pageSize = _messages.IntegerField(5, variant=_messages.Variant.INT32)
  pageToken = _messages.StringField(6)


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

  Fields:
    networkMonitoringProvider: A NetworkMonitoringProvider resource to be
      passed as the request body.
    networkMonitoringProviderId: Required. The ID to use for the
      NetworkMonitoringProvider resource, which will become the final
      component of the NetworkMonitoringProvider resource's name.
    parent: Required. Parent value for CreateNetworkMonitoringProviderRequest.
      Format: projects/{project}/locations/{location}
  """

  networkMonitoringProvider = _messages.MessageField('NetworkMonitoringProvider', 1)
  networkMonitoringProviderId = _messages.StringField(2)
  parent = _messages.StringField(3, required=True)


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

  Fields:
    force: Optional. If set to true, any nested MonitoringPoints, NetworkPaths
      and WebPaths resources from this NetworkMonitoringProvider will also be
      deleted. Otherwise, the request will only work if there are no nested
      resources.
    name: Required. Name of the resource. Format: projects/{project}/locations
      /{location}/networkMonitoringProviders/{network_monitoring_provider}
  """

  force = _messages.BooleanField(1)
  name = _messages.StringField(2, required=True)


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersGenerateMonitoringPointConfigRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersGenerateMo
  nitoringPointConfigRequest object.

  Fields:
    name: Required. Name of the resource. Format: projects/{project}/locations
      /{location}/networkMonitoringProviders/{network_monitoring_provider}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersGenerateProviderAccessTokenRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersGeneratePr
  oviderAccessTokenRequest object.

  Fields:
    gcpAccessToken: Required. Google access token.
    name: Required. Name of the resource. Format: projects/{project}/locations
      /{location}/networkMonitoringProviders/{network_monitoring_provider}
  """

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


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

  Fields:
    name: Required. Name of the resource. Format: `projects/{project}/location
      s/{location}/networkMonitoringProviders/{network_monitoring_provider}`
  """

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


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

  Fields:
    pageSize: Optional. The maximum number of monitoring points to return. The
      service may return fewer than this value. If unspecified, at most 20
      monitoring points will be returned. The maximum value is 1000; values
      above 1000 will be coerced to 1000.
    pageToken: Optional. A page token, received from a previous
      `ListMonitoringPoints` call. Provide this to retrieve the subsequent
      page. When paginating, all other parameters provided to
      `ListMonitoringPoints` must match the call that provided the page token.
    parent: Required. Parent value for ListNetworkMonitoringProvidersRequest.
      Format: `projects/{project}/locations/{location}`
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoring
  PointsDownloadInstallScriptRequest object.

  Enums:
    MonitoringPointTypeValueValuesEnum: Required. The type of the monitoring
      point.

  Fields:
    _password: Optional. Password for logging into the MonitoringPoint.
    hostname: Required. The hostname of the MonitoringPoint, e.g. "test-vm"
    monitoringPointType: Required. The type of the monitoring point.
    ntpServerAddress: Optional. Network Time Protocol a user can configure. If
      the user omits the field, the default is either NTP servers provided in
      the DHCP lease or a set of well-known NTP servers pre-configured on the
      monitoring point. This field can be an IP address or FQDN.
    ntpServerSecondaryAddress: Optional. Second NTP server.
    parent: Required. Parent value for DownloadInstallScriptRequest. Format: p
      rojects/{project}/locations/{location}/networkMonitoringProviders/{netwo
      rk_monitoring_provider}
    staticIpAddress_dnsServerAddress: Required. DNS server.
    staticIpAddress_dnsServerSecondaryAddress: Optional. Second DNS server.
    staticIpAddress_domain: Optional. Domain name of the MonitoringPoint.
    staticIpAddress_gatewayAddress: Required. Gateway IP address. Example:
      "100.80.40.1".
    staticIpAddress_ipAddress: Required. IP address of the MonitoringPoint.
    staticIpAddress_netmask: Optional. Networkmask and CIDR range. Example:
      "255.255.255.0/24"
    timeZone_id: IANA Time Zone Database time zone. For example
      "America/New_York".
    timeZone_version: Optional. IANA Time Zone Database version number. For
      example "2019a".
    useDhcp: Optional. Dynamic Host Configuration Protocol, is a network
      management protocol that automatically assigns IP addresses and other
      network configuration parameters to devices connecting to a network.
  """

  class MonitoringPointTypeValueValuesEnum(_messages.Enum):
    r"""Required. The type of the monitoring point.

    Values:
      MONITORING_POINT_TYPE_UNSPECIFIED: This value should not be used.
      CONTAINER: Monitoring Point that runs in a Docker container.
      KVM: Monitoring Point that runs in a KVM hypervisor.
      VMWARE: Monitoring Point that runs in a VMware hypervisor.
      HELM: Monitoring Point that runs on a K8S Helm.
      GCE_VM: Monitoring Point that runs as a startup script in a Compute
        Engine VM.
      AZURE_VM: Monitoring Point that runs as a startup script in an Azure VM.
    """
    MONITORING_POINT_TYPE_UNSPECIFIED = 0
    CONTAINER = 1
    KVM = 2
    VMWARE = 3
    HELM = 4
    GCE_VM = 5
    AZURE_VM = 6

  _password = _messages.StringField(1)
  hostname = _messages.StringField(2)
  monitoringPointType = _messages.EnumField('MonitoringPointTypeValueValuesEnum', 3)
  ntpServerAddress = _messages.StringField(4)
  ntpServerSecondaryAddress = _messages.StringField(5)
  parent = _messages.StringField(6, required=True)
  staticIpAddress_dnsServerAddress = _messages.StringField(7)
  staticIpAddress_dnsServerSecondaryAddress = _messages.StringField(8)
  staticIpAddress_domain = _messages.StringField(9)
  staticIpAddress_gatewayAddress = _messages.StringField(10)
  staticIpAddress_ipAddress = _messages.StringField(11)
  staticIpAddress_netmask = _messages.StringField(12)
  timeZone_id = _messages.StringField(13)
  timeZone_version = _messages.StringField(14)
  useDhcp = _messages.BooleanField(15)


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadRecreateInstallScriptRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoring
  PointsDownloadRecreateInstallScriptRequest object.

  Fields:
    hostname: Optional. The hostname of the MonitoringPoint, e.g. "test-vm"
    name: Required. Resource name of the MonitoringPoint. Format: projects/{pr
      oject}/locations/{location}/networkMonitoringProviders/{network_monitori
      ng_provider}/monitoringPoints/{monitoring_point}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadServerConnectConfigRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoring
  PointsDownloadServerConnectConfigRequest object.

  Fields:
    parent: Required. Parent value for DownloadServerConnectConfigRequest.
      Format: projects/{project}/locations/{location}/networkMonitoringProvide
      rs/{network_monitoring_provider}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsGetRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoring
  PointsGetRequest object.

  Fields:
    name: Required. Name of the resource. Format: projects/{project}/locations
      /{location}/networkMonitoringProviders/{network_monitoring_provider}/mon
      itoringPoints/{monitoring_point}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsListRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoring
  PointsListRequest object.

  Fields:
    pageSize: Optional. The maximum number of monitoring points to return. The
      service may return fewer than this value. If unspecified, at most 20
      monitoring points will be returned. The maximum value is 1000; values
      above 1000 will be coerced to 1000.
    pageToken: Optional. A page token, received from a previous
      `ListMonitoringPoints` call. Provide this to retrieve the subsequent
      page. When paginating, all other parameters provided to
      `ListMonitoringPoints` must match the call that provided the page token.
    parent: Required. Parent value for ListMonitoringPointsRequest. Format: pr
      ojects/{project}/locations/{location}/networkMonitoringProviders/{networ
      k_monitoring_provider}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersNetworkPathsGetRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersNetworkPat
  hsGetRequest object.

  Fields:
    name: Required. Name of the resource. Format: projects/{project}/locations
      /{location}/networkMonitoringProviders/{network_monitoring_provider}/net
      workPaths/{network_path}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersNetworkPathsListRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersNetworkPat
  hsListRequest object.

  Fields:
    pageSize: Optional. The maximum number of network paths to return. The
      service may return fewer than this value. If unspecified, at most 20
      network pathswill be returned. The maximum value is 1000; values above
      1000 will be coerced to 1000.
    pageToken: Optional. A page token, received from a previous
      `ListNetworkPaths` call. Provide this to retrieve the subsequent page.
      When paginating, all other parameters provided to `ListNetworkPaths`
      must match the call that provided the page token.
    parent: Required. Parent value for ListNetworkPathsRequest. Format: projec
      ts/{project}/locations/{location}/networkMonitoringProviders/{network_mo
      nitoring_provider}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersWebPathsGetRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersWebPathsGe
  tRequest object.

  Fields:
    name: Required. Name of the resource.. Format: projects/{project}/location
      s/{location}/networkMonitoringProviders/{network_monitoring_provider}/we
      bPaths/{web_path}
  """

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


class NetworkmanagementProjectsLocationsNetworkMonitoringProvidersWebPathsListRequest(_messages.Message):
  r"""A NetworkmanagementProjectsLocationsNetworkMonitoringProvidersWebPathsLi
  stRequest object.

  Fields:
    pageSize: Optional. The maximum number of web paths to return. The service
      may return fewer than this value. If unspecified, at most 20 web paths
      will be returned. The maximum value is 1000; values above 1000 will be
      coerced to 1000.
    pageToken: Optional. A page token, received from a previous `ListWebPaths`
      call. Provide this to retrieve the subsequent page. When paginating, all
      other parameters provided to `ListWebPaths` must match the call that
      provided the page token.
    parent: Required. Parent value for ListWebPathsRequest. Format: projects/{
      project}/locations/{location}/networkMonitoringProviders/{network_monito
      ring_provider}
  """

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


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

  Fields:
    cancelOperationRequest: A CancelOperationRequest resource to be passed as
      the request body.
    name: The name of the operation resource to be cancelled.
  """

  cancelOperationRequest = _messages.MessageField('CancelOperationRequest', 1)
  name = _messages.StringField(2, required=True)


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

  Fields:
    name: The name of the operation resource to be deleted.
  """

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


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

  Fields:
    name: The name of the operation resource.
  """

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


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

  Fields:
    filter: The standard list filter.
    name: The name of the operation's parent resource.
    pageSize: The standard list page size.
    pageToken: The standard list page token.
    returnPartialSuccess: When set to `true`, operations that are reachable
      are returned as normal, and those that are unreachable are returned in
      the ListOperationsResponse.unreachable field. This can only be `true`
      when reading across collections. For example, when `parent` is set to
      `"projects/example/locations/-"`. This field is not supported by default
      and will result in an `UNIMPLEMENTED` error if set unless explicitly
      documented otherwise in service or product specific documentation.
  """

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


class Operation(_messages.Message):
  r"""This resource represents a long-running operation that is the result of
  a network API call.

  Messages:
    MetadataValue: Service-specific metadata associated with the operation. It
      typically contains progress information and common metadata such as
      create time. Some services might not provide such metadata. Any method
      that returns a long-running operation should document the metadata type,
      if any.
    ResponseValue: The normal, successful response of the operation. If the
      original method returns no data on success, such as `Delete`, the
      response is `google.protobuf.Empty`. If the original method is standard
      `Get`/`Create`/`Update`, the response should be the resource. For other
      methods, the response should have the type `XxxResponse`, where `Xxx` is
      the original method name. For example, if the original method name is
      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

  Fields:
    done: If the value is `false`, it means the operation is still in
      progress. If `true`, the operation is completed, and either `error` or
      `response` is available.
    error: The error result of the operation in case of failure or
      cancellation.
    metadata: Service-specific metadata associated with the operation. It
      typically contains progress information and common metadata such as
      create time. Some services might not provide such metadata. Any method
      that returns a long-running operation should document the metadata type,
      if any.
    name: The server-assigned name, which is only unique within the same
      service that originally returns it. If you use the default HTTP mapping,
      the `name` should be a resource name ending with
      `operations/{unique_id}`.
    response: The normal, successful response of the operation. If the
      original method returns no data on success, such as `Delete`, the
      response is `google.protobuf.Empty`. If the original method is standard
      `Get`/`Create`/`Update`, the response should be the resource. For other
      methods, the response should have the type `XxxResponse`, where `Xxx` is
      the original method name. For example, if the original method name is
      `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class MetadataValue(_messages.Message):
    r"""Service-specific metadata associated with the operation. It typically
    contains progress information and common metadata such as create time.
    Some services might not provide such metadata. Any method that returns a
    long-running operation should document the metadata type, if any.

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

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

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

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

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

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

  @encoding.MapUnrecognizedFields('additionalProperties')
  class ResponseValue(_messages.Message):
    r"""The normal, successful response of the operation. If the original
    method returns no data on success, such as `Delete`, the response is
    `google.protobuf.Empty`. If the original method is standard
    `Get`/`Create`/`Update`, the response should be the resource. For other
    methods, the response should have the type `XxxResponse`, where `Xxx` is
    the original method name. For example, if the original method name is
    `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.

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

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

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

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

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

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

  done = _messages.BooleanField(1)
  error = _messages.MessageField('Status', 2)
  metadata = _messages.MessageField('MetadataValue', 3)
  name = _messages.StringField(4)
  response = _messages.MessageField('ResponseValue', 5)


class OperationMetadata(_messages.Message):
  r"""Represents the metadata of the long-running operation.

  Fields:
    apiVersion: Output only. API version used to start the operation.
    createTime: Output only. The time the operation was created.
    endTime: Output only. The time the operation finished running.
    requestedCancellation: Output only. Identifies whether the user has
      requested cancellation of the operation. Operations that have been
      cancelled successfully have Operation.error value with a
      google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
    statusMessage: Output only. Human-readable status of the operation, if
      any.
    target: Output only. Server-defined resource path for the target of the
      operation.
    verb: Output only. Name of the verb executed by the operation.
  """

  apiVersion = _messages.StringField(1)
  createTime = _messages.StringField(2)
  endTime = _messages.StringField(3)
  requestedCancellation = _messages.BooleanField(4)
  statusMessage = _messages.StringField(5)
  target = _messages.StringField(6)
  verb = _messages.StringField(7)


class OutOfBandDeploymentConfig(_messages.Message):
  r"""Config used to deploy an out of band appliance topology.

  Fields:
    applianceId: The id returned by our get appliance methods that identifies
      the appliance that will be deployed.
    applianceLoginSshKey: The public ssh key that will be used to log into the
      appliance.
    bootstrapParams: The bootstrap parameters that will be passed to appliance
      on first boot. The format for bootstrap parameters will depend on the
      appliance vendor and will vary. TODO (http://b/242734886): Add links to
      docs once they are in place.
    machineType: The machine type the appliance vm will be installed on.
      Example: e2-standard-4 See
      https://cloud.google.com/compute/docs/machine-types for more
      information. TODO (http://b/242734886): Add links to docs once they are
      in place (in this case, verify the above link is what we want for the
      final link).
    managementSubnet: The name of an existing subnet the appliance's
      management interface should connect to. This must be a subnet that
      exists in the vpc specified in the 'management_vpc' field. This field
      must be set if 'management_vpc' is set.
    managementSubnetCidrRange: The cidr range the appliance's management
      interface should get its ip from. Either this should be set, or
      management_vpc and management_subnet should both be set. Example:
      25.72.12.0/24
    managementVpc: The name of an existing vpc that the appliance's management
      interface should connect to.
    maxInstances: The maximum number of instances of the appliance that should
      be running at any time.
    minInstances: The minimum number of instances of the appliance that should
      be running at any time.
    namingPrefix: A user specified string that will be prefixed to names of
      resources we create on their behalf.
    trafficSubnetCidrRange: The cidr range that specifies the traffic that
      should be directed to the appliance. Example: 25.72.12.0/24
    zones: The zones the appliance group will be deployed to. TODO
      (http://b/242734886): Add links to docs once they are in place.
  """

  applianceId = _messages.StringField(1)
  applianceLoginSshKey = _messages.StringField(2)
  bootstrapParams = _messages.StringField(3)
  machineType = _messages.StringField(4)
  managementSubnet = _messages.StringField(5)
  managementSubnetCidrRange = _messages.StringField(6)
  managementVpc = _messages.StringField(7)
  maxInstances = _messages.IntegerField(8, variant=_messages.Variant.INT32)
  minInstances = _messages.IntegerField(9, variant=_messages.Variant.INT32)
  namingPrefix = _messages.StringField(10)
  trafficSubnetCidrRange = _messages.StringField(11)
  zones = _messages.StringField(12, repeated=True)


class ProviderTag(_messages.Message):
  r"""Message describing the provider tag.

  Enums:
    ResourceTypeValueValuesEnum: Output only. The resource type of the
      provider tag.

  Fields:
    category: Output only. The category of the provider tag.
    resourceType: Output only. The resource type of the provider tag.
    value: Output only. The value of the provider tag.
  """

  class ResourceTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The resource type of the provider tag.

    Values:
      RESOURCE_TYPE_UNSPECIFIED: The default value. This value is used if the
        status is omitted.
      NETWORK_PATH: Network path.
      WEB_PATH: Web path.
      MONITORING_POLICY: Monitoring policy.
      MONITORING_POINT: Monitoring point.
      MONITORING_POINT_RULE: Monitoring point rule.
      MONITORING_POINT_RULE_AUTO: Monitoring point rule automatic.
    """
    RESOURCE_TYPE_UNSPECIFIED = 0
    NETWORK_PATH = 1
    WEB_PATH = 2
    MONITORING_POLICY = 3
    MONITORING_POINT = 4
    MONITORING_POINT_RULE = 5
    MONITORING_POINT_RULE_AUTO = 6

  category = _messages.StringField(1)
  resourceType = _messages.EnumField('ResourceTypeValueValuesEnum', 2)
  value = _messages.StringField(3)


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

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

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

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

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

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

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

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


class Status(_messages.Message):
  r"""The `Status` type defines a logical error model that is suitable for
  different programming environments, including REST APIs and RPC APIs. It is
  used by [gRPC](https://github.com/grpc). Each `Status` message contains
  three pieces of data: error code, error message, and error details. You can
  find out more about this error model and how to work with it in the [API
  Design Guide](https://cloud.google.com/apis/design/errors).

  Messages:
    DetailsValueListEntry: A DetailsValueListEntry object.

  Fields:
    code: The status code, which should be an enum value of google.rpc.Code.
    details: A list of messages that carry the error details. There is a
      common set of message types for APIs to use.
    message: A developer-facing error message, which should be in English. Any
      user-facing error message should be localized and sent in the
      google.rpc.Status.details field, or localized by the client.
  """

  @encoding.MapUnrecognizedFields('additionalProperties')
  class DetailsValueListEntry(_messages.Message):
    r"""A DetailsValueListEntry object.

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

    Fields:
      additionalProperties: Properties of the object. Contains field @type
        with type URL.
    """

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

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

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

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

  code = _messages.IntegerField(1, variant=_messages.Variant.INT32)
  details = _messages.MessageField('DetailsValueListEntry', 2, repeated=True)
  message = _messages.StringField(3)


class WebPath(_messages.Message):
  r"""Message describing WebPath resource.

  Enums:
    MonitoringStatusValueValuesEnum: Output only. The monitoring status of the
      WebPath.
    WorkflowTypeValueValuesEnum: Output only. The workflow type of the
      WebPath.

  Fields:
    createTime: Output only. The time the WebPath was created.
    destination: Output only. Web monitoring target.
    destinationGeoLocation: Output only. Geographical location of the
      destination.
    displayName: Output only. Display name of the WebPath.
    interval: Output only. Monitoring interval.
    monitoringEnabled: Output only. Is monitoring enabled for the WebPath.
    monitoringPolicyDisplayName: Output only. Display name of the monitoring
      policy.
    monitoringPolicyId: Output only. ID of the monitoring policy.
    monitoringStatus: Output only. The monitoring status of the WebPath.
    name: Identifier. Name of the resource. Format: `projects/{project}/locati
      ons/{location}/networkMonitoringProviders/{network_monitoring_provider}/
      webPaths/{web_path}`
    providerTags: Output only. The provider tags of the web path.
    providerUiUri: Output only. Link to provider's UI; link shows the WebPath.
    relatedNetworkPathId: Output only. Provider's UUID of the related
      NetworkPath.
    sourceMonitoringPointId: Output only. ID of the source MonitoringPoint.
    updateTime: Output only. The time the WebPath was updated.
    workflowType: Output only. The workflow type of the WebPath.
  """

  class MonitoringStatusValueValuesEnum(_messages.Enum):
    r"""Output only. The monitoring status of the WebPath.

    Values:
      MONITORING_STATUS_UNSPECIFIED: The default value. This value is used if
        the status is omitted.
      MONITORING: Monitoring is enabled.
      POLICY_MISMATCH: Policy is mismatched.
      MONITORING_POINT_OFFLINE: Monitoring point is offline.
      DISABLED: Monitoring is disabled.
    """
    MONITORING_STATUS_UNSPECIFIED = 0
    MONITORING = 1
    POLICY_MISMATCH = 2
    MONITORING_POINT_OFFLINE = 3
    DISABLED = 4

  class WorkflowTypeValueValuesEnum(_messages.Enum):
    r"""Output only. The workflow type of the WebPath.

    Values:
      WORKFLOW_TYPE_UNSPECIFIED: The default value. This value is used if the
        status is omitted.
      BROWSER: Browser.
      HTTP: HTTP.
    """
    WORKFLOW_TYPE_UNSPECIFIED = 0
    BROWSER = 1
    HTTP = 2

  createTime = _messages.StringField(1)
  destination = _messages.StringField(2)
  destinationGeoLocation = _messages.MessageField('GeoLocation', 3)
  displayName = _messages.StringField(4)
  interval = _messages.StringField(5)
  monitoringEnabled = _messages.BooleanField(6)
  monitoringPolicyDisplayName = _messages.StringField(7)
  monitoringPolicyId = _messages.StringField(8)
  monitoringStatus = _messages.EnumField('MonitoringStatusValueValuesEnum', 9)
  name = _messages.StringField(10)
  providerTags = _messages.MessageField('ProviderTag', 11, repeated=True)
  providerUiUri = _messages.StringField(12)
  relatedNetworkPathId = _messages.StringField(13)
  sourceMonitoringPointId = _messages.StringField(14)
  updateTime = _messages.StringField(15)
  workflowType = _messages.EnumField('WorkflowTypeValueValuesEnum', 16)


encoding.AddCustomJsonFieldMapping(
    StandardQueryParameters, 'f__xgafv', '$.xgafv')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1')
encoding.AddCustomJsonEnumMapping(
    StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'staticIpAddress_dnsServerAddress', 'staticIpAddress.dnsServerAddress')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'staticIpAddress_dnsServerSecondaryAddress', 'staticIpAddress.dnsServerSecondaryAddress')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'staticIpAddress_domain', 'staticIpAddress.domain')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'staticIpAddress_gatewayAddress', 'staticIpAddress.gatewayAddress')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'staticIpAddress_ipAddress', 'staticIpAddress.ipAddress')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'staticIpAddress_netmask', 'staticIpAddress.netmask')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'timeZone_id', 'timeZone.id')
encoding.AddCustomJsonFieldMapping(
    NetworkmanagementProjectsLocationsNetworkMonitoringProvidersMonitoringPointsDownloadInstallScriptRequest, 'timeZone_version', 'timeZone.version')
