type: com.google.api.codegen.ConfigProto
config_schema_version: 1.0.0
# The settings of generated code in a specific language.
language_settings:
  java:
    package_name: com.google.cloud.monitoring.v3
    release_level: GA
  python:
    package_name: google.cloud.monitoring_v3.gapic
  go:
    package_name: cloud.google.com/go/monitoring/apiv3
  csharp:
    package_name: Google.Cloud.Monitoring.V3
    release_level: GA
  ruby:
    package_name: Google::Cloud::Monitoring::V3
    release_level: BETA
  php:
    package_name: Google\Cloud\Monitoring\V3
  nodejs:
    package_name: monitoring.v3
    domain_layer_location: google-cloud
# A list of API interface configurations.
interfaces:
# The fully qualified name of the API interface.
- name: google.monitoring.v3.AlertPolicyService
  # A list of resource collection configurations.
  # Consists of a name_pattern and an entity_name.
  # The name_pattern is a pattern to describe the names of the resources of this
  # collection, using the platform's conventions for URI patterns. A generator
  # may use this to generate methods to compose and decompose such names. The
  # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
  # those will be taken as hints for the parameter names of the generated
  # methods. If empty, no name methods are generated.
  # The entity_name is the name to be used as a basis for generated methods and
  # classes.
  collections:
  - name_pattern: projects/{project}
    entity_name: project
    # C#: Already GA, do not use common resource name for 'project'
  - name_pattern: projects/{project}/alertPolicies/{alert_policy}
    entity_name: alert_policy
  - name_pattern: projects/{project}/alertPolicies/{alert_policy}/conditions/{condition}
    entity_name: alert_policy_condition
  # Definition for retryable codes.
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - DEADLINE_EXCEEDED
    - UNAVAILABLE
  - name: non_idempotent
    retry_codes: []
  # Definition for retry/backoff parameters.
  retry_params_def:
  - name: default
    initial_retry_delay_millis: 100
    retry_delay_multiplier: 1.3
    max_retry_delay_millis: 60000
    initial_rpc_timeout_millis: 20000
    rpc_timeout_multiplier: 1
    max_rpc_timeout_millis: 20000
    total_timeout_millis: 600000
  # A list of method configurations.
  # Common properties:
  #
  #   name - The simple name of the method.
  #
  #   flattening - Specifies the configuration for parameter flattening.
  #   Describes the parameter groups for which a generator should produce method
  #   overloads which allow a client to directly pass request message fields as
  #   method parameters. This information may or may not be used, depending on
  #   the target language.
  #   Consists of groups, which each represent a list of parameters to be
  #   flattened. Each parameter listed must be a field of the request message.
  #
  #   required_fields - Fields that are always required for a request to be
  #   valid.
  #
  #   page_streaming - Specifies the configuration for paging.
  #   Describes information for generating a method which transforms a paging
  #   list RPC into a stream of resources.
  #   Consists of a request and a response.
  #   The request specifies request information of the list method. It defines
  #   which fields match the paging pattern in the request. The request consists
  #   of a page_size_field and a token_field. The page_size_field is the name of
  #   the optional field specifying the maximum number of elements to be
  #   returned in the response. The token_field is the name of the field in the
  #   request containing the page token.
  #   The response specifies response information of the list method. It defines
  #   which fields match the paging pattern in the response. The response
  #   consists of a token_field and a resources_field. The token_field is the
  #   name of the field in the response containing the next page token. The
  #   resources_field is the name of the field in the response containing the
  #   list of resources belonging to the page.
  #
  #   retry_codes_name - Specifies the configuration for retryable codes. The
  #   name must be defined in interfaces.retry_codes_def.
  #
  #   retry_params_name - Specifies the configuration for retry/backoff
  #   parameters. The name must be defined in interfaces.retry_params_def.
  #
  #   field_name_patterns - Maps the field name of the request type to
  #   entity_name of interfaces.collections.
  #   Specifies the string pattern that the field must follow.
  #
  #   timeout_millis - Specifies the default timeout for a non-retrying call. If
  #   the call is retrying, refer to retry_params_name instead.
  methods:
  - name: ListAlertPolicies
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: alert_policies
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetAlertPolicy
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: alert_policy
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: CreateAlertPolicy
    flattening:
      groups:
      - parameters:
        - name
        - alert_policy
    required_fields:
    - name
    - alert_policy
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: DeleteAlertPolicy
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: alert_policy
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: UpdateAlertPolicy
    flattening:
      groups:
      - parameters:
        - update_mask
        - alert_policy
    required_fields:
    - alert_policy
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      alert_policy.name: alert_policy
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
# The fully qualified name of the API interface.
- name: google.monitoring.v3.GroupService
  # A list of resource collection configurations.
  # Consists of a name_pattern and an entity_name.
  # The name_pattern is a pattern to describe the names of the resources of this
  # collection, using the platform's conventions for URI patterns. A generator
  # may use this to generate methods to compose and decompose such names. The
  # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
  # those will be taken as hints for the parameter names of the generated
  # methods. If empty, no name methods are generated.
  # The entity_name is the name to be used as a basis for generated methods and
  # classes.
  collections:
  - name_pattern: projects/{project}
    entity_name: project
    # C#: Already GA, do not use common resource name for 'project'
  - name_pattern: projects/{project}/groups/{group}
    entity_name: group
  # Definition for retryable codes.
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - DEADLINE_EXCEEDED
    - UNAVAILABLE
  - name: non_idempotent
    retry_codes: []
  # Definition for retry/backoff parameters.
  retry_params_def:
  - name: default
    initial_retry_delay_millis: 100
    retry_delay_multiplier: 1.3
    max_retry_delay_millis: 60000
    initial_rpc_timeout_millis: 20000
    rpc_timeout_multiplier: 1
    max_rpc_timeout_millis: 20000
    total_timeout_millis: 600000
  # A list of method configurations.
  # Common properties:
  #
  #   name - The simple name of the method.
  #
  #   flattening - Specifies the configuration for parameter flattening.
  #   Describes the parameter groups for which a generator should produce method
  #   overloads which allow a client to directly pass request message fields as
  #   method parameters. This information may or may not be used, depending on
  #   the target language.
  #   Consists of groups, which each represent a list of parameters to be
  #   flattened. Each parameter listed must be a field of the request message.
  #
  #   required_fields - Fields that are always required for a request to be
  #   valid.
  #
  #   page_streaming - Specifies the configuration for paging.
  #   Describes information for generating a method which transforms a paging
  #   list RPC into a stream of resources.
  #   Consists of a request and a response.
  #   The request specifies request information of the list method. It defines
  #   which fields match the paging pattern in the request. The request consists
  #   of a page_size_field and a token_field. The page_size_field is the name of
  #   the optional field specifying the maximum number of elements to be
  #   returned in the response. The token_field is the name of the field in the
  #   request containing the page token.
  #   The response specifies response information of the list method. It defines
  #   which fields match the paging pattern in the response. The response
  #   consists of a token_field and a resources_field. The token_field is the
  #   name of the field in the response containing the next page token. The
  #   resources_field is the name of the field in the response containing the
  #   list of resources belonging to the page.
  #
  #   retry_codes_name - Specifies the configuration for retryable codes. The
  #   name must be defined in interfaces.retry_codes_def.
  #
  #   retry_params_name - Specifies the configuration for retry/backoff
  #   parameters. The name must be defined in interfaces.retry_params_def.
  #
  #   field_name_patterns - Maps the field name of the request type to
  #   entity_name of interfaces.collections.
  #   Specifies the string pattern that the field must follow.
  #
  #   timeout_millis - Specifies the default timeout for a non-retrying call. If
  #   the call is retrying, refer to retry_params_name instead.
  methods:
  - name: ListGroups
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: group
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetGroup
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: group
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: CreateGroup
    flattening:
      groups:
      - parameters:
        - name
        - group
    required_fields:
    - name
    - group
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: UpdateGroup
    flattening:
      groups:
      - parameters:
        - group
    required_fields:
    - group
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      group.name: group
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: DeleteGroup
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: group
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: ListGroupMembers
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: members
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: group
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
# The fully qualified name of the API interface.
- name: google.monitoring.v3.MetricService
  # A list of resource collection configurations.
  # Consists of a name_pattern and an entity_name.
  # The name_pattern is a pattern to describe the names of the resources of this
  # collection, using the platform's conventions for URI patterns. A generator
  # may use this to generate methods to compose and decompose such names. The
  # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
  # those will be taken as hints for the parameter names of the generated
  # methods. If empty, no name methods are generated.
  # The entity_name is the name to be used as a basis for generated methods and
  # classes.
  smoke_test:
    method: ListMonitoredResourceDescriptors
    init_fields:
    - name%project=$PROJECT_ID
  collections:
  - name_pattern: projects/{project}
    entity_name: project
    # C#: Already GA, do not use common resource name for 'project'
  - name_pattern: projects/{project}/metricDescriptors/{metric_descriptor=**}
    entity_name: metric_descriptor
  - name_pattern: projects/{project}/monitoredResourceDescriptors/{monitored_resource_descriptor}
    entity_name: monitored_resource_descriptor
  # Definition for retryable codes.
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - DEADLINE_EXCEEDED
    - UNAVAILABLE
  - name: non_idempotent
    retry_codes: []
  # Definition for retry/backoff parameters.
  retry_params_def:
  - name: default
    initial_retry_delay_millis: 100
    retry_delay_multiplier: 1.3
    max_retry_delay_millis: 60000
    initial_rpc_timeout_millis: 30000
    rpc_timeout_multiplier: 1.3
    max_rpc_timeout_millis: 90000
    total_timeout_millis: 600000
  # A list of method configurations.
  # Common properties:
  #
  #   name - The simple name of the method.
  #
  #   flattening - Specifies the configuration for parameter flattening.
  #   Describes the parameter groups for which a generator should produce method
  #   overloads which allow a client to directly pass request message fields as
  #   method parameters. This information may or may not be used, depending on
  #   the target language.
  #   Consists of groups, which each represent a list of parameters to be
  #   flattened. Each parameter listed must be a field of the request message.
  #
  #   required_fields - Fields that are always required for a request to be
  #   valid.
  #
  #   page_streaming - Specifies the configuration for paging.
  #   Describes information for generating a method which transforms a paging
  #   list RPC into a stream of resources.
  #   Consists of a request and a response.
  #   The request specifies request information of the list method. It defines
  #   which fields match the paging pattern in the request. The request consists
  #   of a page_size_field and a token_field. The page_size_field is the name of
  #   the optional field specifying the maximum number of elements to be
  #   returned in the response. The token_field is the name of the field in the
  #   request containing the page token.
  #   The response specifies response information of the list method. It defines
  #   which fields match the paging pattern in the response. The response
  #   consists of a token_field and a resources_field. The token_field is the
  #   name of the field in the response containing the next page token. The
  #   resources_field is the name of the field in the response containing the
  #   list of resources belonging to the page.
  #
  #   retry_codes_name - Specifies the configuration for retryable codes. The
  #   name must be defined in interfaces.retry_codes_def.
  #
  #   retry_params_name - Specifies the configuration for retry/backoff
  #   parameters. The name must be defined in interfaces.retry_params_def.
  #
  #   field_name_patterns - Maps the field name of the request type to
  #   entity_name of interfaces.collections.
  #   Specifies the string pattern that the field must follow.
  #
  #   timeout_millis - Specifies the default timeout for a non-retrying call. If
  #   the call is retrying, refer to retry_params_name instead.
  methods:
  - name: ListMonitoredResourceDescriptors
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: resource_descriptors
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetMonitoredResourceDescriptor
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: monitored_resource_descriptor
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: ListMetricDescriptors
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: metric_descriptors
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetMetricDescriptor
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: metric_descriptor
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: CreateMetricDescriptor
    flattening:
      groups:
      - parameters:
        - name
        - metric_descriptor
    required_fields:
    - name
    - metric_descriptor
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: DeleteMetricDescriptor
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: metric_descriptor
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: ListTimeSeries
    flattening:
      groups:
      - parameters:
        - name
        - filter
        - interval
        - view
    required_fields:
    - name
    - filter
    - interval
    - view
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: time_series
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: CreateTimeSeries
    flattening:
      groups:
      - parameters:
        - name
        - time_series
    required_fields:
    - name
    - time_series
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
# The fully qualified name of the API interface.
- name: google.monitoring.v3.NotificationChannelService
  # A list of resource collection configurations.
  # Consists of a name_pattern and an entity_name.
  # The name_pattern is a pattern to describe the names of the resources of this
  # collection, using the platform's conventions for URI patterns. A generator
  # may use this to generate methods to compose and decompose such names. The
  # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
  # those will be taken as hints for the parameter names of the generated
  # methods. If empty, no name methods are generated.
  # The entity_name is the name to be used as a basis for generated methods and
  # classes.
  collections:
  - name_pattern: projects/{project}
    entity_name: project
  - name_pattern: projects/{project}/notificationChannelDescriptors/{channel_descriptor}
    entity_name: notification_channel_descriptor
    # C#: Already GA, do not use common resource name for 'project'
  - name_pattern: projects/{project}/notificationChannels/{notification_channel}
    entity_name: notification_channel
  # Definition for retryable codes.
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - DEADLINE_EXCEEDED
    - UNAVAILABLE
  - name: non_idempotent
    retry_codes: []
  # Definition for retry/backoff parameters.
  retry_params_def:
  - name: default
    initial_retry_delay_millis: 100
    retry_delay_multiplier: 1.3
    max_retry_delay_millis: 60000
    initial_rpc_timeout_millis: 20000
    rpc_timeout_multiplier: 1
    max_rpc_timeout_millis: 20000
    total_timeout_millis: 600000
  # A list of method configurations.
  # Common properties:
  #
  #   name - The simple name of the method.
  #
  #   flattening - Specifies the configuration for parameter flattening.
  #   Describes the parameter groups for which a generator should produce method
  #   overloads which allow a client to directly pass request message fields as
  #   method parameters. This information may or may not be used, depending on
  #   the target language.
  #   Consists of groups, which each represent a list of parameters to be
  #   flattened. Each parameter listed must be a field of the request message.
  #
  #   required_fields - Fields that are always required for a request to be
  #   valid.
  #
  #   page_streaming - Specifies the configuration for paging.
  #   Describes information for generating a method which transforms a paging
  #   list RPC into a stream of resources.
  #   Consists of a request and a response.
  #   The request specifies request information of the list method. It defines
  #   which fields match the paging pattern in the request. The request consists
  #   of a page_size_field and a token_field. The page_size_field is the name of
  #   the optional field specifying the maximum number of elements to be
  #   returned in the response. The token_field is the name of the field in the
  #   request containing the page token.
  #   The response specifies response information of the list method. It defines
  #   which fields match the paging pattern in the response. The response
  #   consists of a token_field and a resources_field. The token_field is the
  #   name of the field in the response containing the next page token. The
  #   resources_field is the name of the field in the response containing the
  #   list of resources belonging to the page.
  #
  #   retry_codes_name - Specifies the configuration for retryable codes. The
  #   name must be defined in interfaces.retry_codes_def.
  #
  #   retry_params_name - Specifies the configuration for retry/backoff
  #   parameters. The name must be defined in interfaces.retry_params_def.
  #
  #   field_name_patterns - Maps the field name of the request type to
  #   entity_name of interfaces.collections.
  #   Specifies the string pattern that the field must follow.
  #
  #   timeout_millis - Specifies the default timeout for a non-retrying call. If
  #   the call is retrying, refer to retry_params_name instead.
  methods:
  - name: ListNotificationChannelDescriptors
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: channel_descriptors
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetNotificationChannelDescriptor
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: notification_channel_descriptor
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: ListNotificationChannels
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: notification_channels
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetNotificationChannel
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: notification_channel
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: CreateNotificationChannel
    flattening:
      groups:
      - parameters:
        - name
        - notification_channel
    required_fields:
    - name
    - notification_channel
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: UpdateNotificationChannel
    flattening:
      groups:
      - parameters:
        - update_mask
        - notification_channel
    required_fields:
    - notification_channel
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      notification_channel.name: notification_channel
    timeout_millis: 60000
  - name: DeleteNotificationChannel
    flattening:
      groups:
      - parameters:
        - name
        - force
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: notification_channel
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: SendNotificationChannelVerificationCode
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: notification_channel
    timeout_millis: 60000
  - name: GetNotificationChannelVerificationCode
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: notification_channel
    timeout_millis: 60000
  - name: VerifyNotificationChannel
    flattening:
      groups:
      - parameters:
        - name
        - code
    required_fields:
    - name
    - code
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: notification_channel
    timeout_millis: 60000
# The fully qualified name of the API interface.
- name: google.monitoring.v3.ServiceMonitoringService
  # A list of resource collection configurations.
  # Consists of a name_pattern and an entity_name.
  # The name_pattern is a pattern to describe the names of the resources of this
  # collection, using the platform's conventions for URI patterns. A generator
  # may use this to generate methods to compose and decompose such names. The
  # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
  # those will be taken as hints for the parameter names of the generated
  # methods. If empty, no name methods are generated.
  # The entity_name is the name to be used as a basis for generated methods and
  # classes.
  collections:
  - name_pattern: projects/{project}
    entity_name: project
  - name_pattern: projects/{project}/services/{service}
    entity_name: service
  - name_pattern: projects/{project}/services/{service}/serviceLevelObjectives/{service_level_objective}
    entity_name: service_level_objective
  # Definition for retryable codes.
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - DEADLINE_EXCEEDED
    - UNAVAILABLE
  - name: non_idempotent
    retry_codes: []
  # Definition for retry/backoff parameters.
  retry_params_def:
  - name: default
    initial_retry_delay_millis: 100
    retry_delay_multiplier: 1.3
    max_retry_delay_millis: 60000
    initial_rpc_timeout_millis: 20000
    rpc_timeout_multiplier: 1
    max_rpc_timeout_millis: 20000
    total_timeout_millis: 600000
  # A list of method configurations.
  # Common properties:
  #
  #   name - The simple name of the method.
  #
  #   flattening - Specifies the configuration for parameter flattening.
  #   Describes the parameter groups for which a generator should produce method
  #   overloads which allow a client to directly pass request message fields as
  #   method parameters. This information may or may not be used, depending on
  #   the target language.
  #   Consists of groups, which each represent a list of parameters to be
  #   flattened. Each parameter listed must be a field of the request message.
  #
  #   required_fields - Fields that are always required for a request to be
  #   valid.
  #
  #   page_streaming - Specifies the configuration for paging.
  #   Describes information for generating a method which transforms a paging
  #   list RPC into a stream of resources.
  #   Consists of a request and a response.
  #   The request specifies request information of the list method. It defines
  #   which fields match the paging pattern in the request. The request consists
  #   of a page_size_field and a token_field. The page_size_field is the name of
  #   the optional field specifying the maximum number of elements to be
  #   returned in the response. The token_field is the name of the field in the
  #   request containing the page token.
  #   The response specifies response information of the list method. It defines
  #   which fields match the paging pattern in the response. The response
  #   consists of a token_field and a resources_field. The token_field is the
  #   name of the field in the response containing the next page token. The
  #   resources_field is the name of the field in the response containing the
  #   list of resources belonging to the page.
  #
  #   retry_codes_name - Specifies the configuration for retryable codes. The
  #   name must be defined in interfaces.retry_codes_def.
  #
  #   retry_params_name - Specifies the configuration for retry/backoff
  #   parameters. The name must be defined in interfaces.retry_params_def.
  #
  #   field_name_patterns - Maps the field name of the request type to
  #   entity_name of interfaces.collections.
  #   Specifies the string pattern that the field must follow.
  #
  #   timeout_millis - Specifies the default timeout for a non-retrying call. If
  #   the call is retrying, refer to retry_params_name instead.
  methods:
  - name: CreateService
    flattening:
      groups:
      - parameters:
        - parent
        - service
    required_fields:
    - parent
    - service
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      parent: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetService
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: service
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: ListServices
    flattening:
      groups:
      - parameters:
        - parent
    required_fields:
    - parent
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: services
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      parent: project
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: UpdateService
    flattening:
      groups:
      - parameters:
        - service
    required_fields:
    - service
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      service.name: service
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: DeleteService
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: service
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: CreateServiceLevelObjective
    flattening:
      groups:
      - parameters:
        - parent
        - service_level_objective
    required_fields:
    - parent
    - service_level_objective
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      parent: service
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: GetServiceLevelObjective
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: service_level_objective
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: ListServiceLevelObjectives
    flattening:
      groups:
      - parameters:
        - parent
    required_fields:
    - parent
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: service_level_objectives
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      parent: service
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: UpdateServiceLevelObjective
    flattening:
      groups:
      - parameters:
        - service_level_objective
    required_fields:
    - service_level_objective
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      service_level_objective.name: service_level_objective
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
  - name: DeleteServiceLevelObjective
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: service_level_objective
    resource_name_treatment: STATIC_TYPES
    timeout_millis: 60000
# The fully qualified name of the API interface.
- name: google.monitoring.v3.UptimeCheckService
  # A list of resource collection configurations.
  # Consists of a name_pattern and an entity_name.
  # The name_pattern is a pattern to describe the names of the resources of this
  # collection, using the platform's conventions for URI patterns. A generator
  # may use this to generate methods to compose and decompose such names. The
  # pattern should use named placeholders as in `shelves/{shelf}/books/{book}`;
  # those will be taken as hints for the parameter names of the generated
  # methods. If empty, no name methods are generated.
  # The entity_name is the name to be used as a basis for generated methods and
  # classes.
  collections:
  - name_pattern: projects/{project}
    entity_name: project
    # C#: Already GA, do not use common resource name for 'project'
  - name_pattern: projects/{project}/uptimeCheckConfigs/{uptime_check_config}
    entity_name: uptime_check_config
  # Definition for retryable codes.
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - DEADLINE_EXCEEDED
    - UNAVAILABLE
  - name: non_idempotent
    retry_codes: []
  # Definition for retry/backoff parameters.
  retry_params_def:
  - name: default
    initial_retry_delay_millis: 100
    retry_delay_multiplier: 1.3
    max_retry_delay_millis: 60000
    initial_rpc_timeout_millis: 20000
    rpc_timeout_multiplier: 1
    max_rpc_timeout_millis: 20000
    total_timeout_millis: 600000
  # A list of method configurations.
  # Common properties:
  #
  #   name - The simple name of the method.
  #
  #   flattening - Specifies the configuration for parameter flattening.
  #   Describes the parameter groups for which a generator should produce method
  #   overloads which allow a client to directly pass request message fields as
  #   method parameters. This information may or may not be used, depending on
  #   the target language.
  #   Consists of groups, which each represent a list of parameters to be
  #   flattened. Each parameter listed must be a field of the request message.
  #
  #   required_fields - Fields that are always required for a request to be
  #   valid.
  #
  #   page_streaming - Specifies the configuration for paging.
  #   Describes information for generating a method which transforms a paging
  #   list RPC into a stream of resources.
  #   Consists of a request and a response.
  #   The request specifies request information of the list method. It defines
  #   which fields match the paging pattern in the request. The request consists
  #   of a page_size_field and a token_field. The page_size_field is the name of
  #   the optional field specifying the maximum number of elements to be
  #   returned in the response. The token_field is the name of the field in the
  #   request containing the page token.
  #   The response specifies response information of the list method. It defines
  #   which fields match the paging pattern in the response. The response
  #   consists of a token_field and a resources_field. The token_field is the
  #   name of the field in the response containing the next page token. The
  #   resources_field is the name of the field in the response containing the
  #   list of resources belonging to the page.
  #
  #   retry_codes_name - Specifies the configuration for retryable codes. The
  #   name must be defined in interfaces.retry_codes_def.
  #
  #   retry_params_name - Specifies the configuration for retry/backoff
  #   parameters. The name must be defined in interfaces.retry_params_def.
  #
  #   field_name_patterns - Maps the field name of the request type to
  #   entity_name of interfaces.collections.
  #   Specifies the string pattern that the field must follow.
  #
  #   timeout_millis - Specifies the default timeout for a non-retrying call. If
  #   the call is retrying, refer to retry_params_name instead.
  methods:
  - name: ListUptimeCheckConfigs
    flattening:
      groups:
      - parameters:
        - parent
    required_fields:
    - parent
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: uptime_check_configs
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      parent: project
    timeout_millis: 60000
  - name: GetUptimeCheckConfig
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: uptime_check_config
    timeout_millis: 60000
    resource_name_treatment: STATIC_TYPES
  - name: CreateUptimeCheckConfig
    flattening:
      groups:
      - parameters:
        - parent
        - uptime_check_config
    required_fields:
    - parent
    - uptime_check_config
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      parent: project
    timeout_millis: 60000
  - name: UpdateUptimeCheckConfig
    flattening:
      groups:
      - parameters:
        - uptime_check_config
    required_fields:
    - uptime_check_config
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      uptime_check_config.name: uptime_check_config
    timeout_millis: 60000
  - name: DeleteUptimeCheckConfig
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: uptime_check_config
    timeout_millis: 60000
    resource_name_treatment: STATIC_TYPES
  - name: ListUptimeCheckIps
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: uptime_check_ips
    retry_codes_name: idempotent
    retry_params_name: default
    timeout_millis: 60000

resource_name_generation:
- message_name: Group
  field_entity_map:
    name: group
    parent_name: group
- message_name: ListGroupsRequest
  field_entity_map:
    name: project
    children_of_group: group
    ancestors_of_group: group
    descendants_of_group: group
- message_name: GetGroupRequest
  field_entity_map:
    name: group
- message_name: CreateGroupRequest
  field_entity_map:
    name: project
- message_name: DeleteGroupRequest
  field_entity_map:
    name: group
- message_name: ListGroupMembersRequest
  field_entity_map:
    name: group
- message_name: ListMonitoredResourceDescriptorsRequest
  field_entity_map:
    name: project
- message_name: GetMonitoredResourceDescriptorRequest
  field_entity_map:
    name: monitored_resource_descriptor
- message_name: ListMetricDescriptorsRequest
  field_entity_map:
    name: project
- message_name: GetMetricDescriptorRequest
  field_entity_map:
    name: metric_descriptor
- message_name: CreateMetricDescriptorRequest
  field_entity_map:
    name: project
- message_name: DeleteMetricDescriptorRequest
  field_entity_map:
    name: metric_descriptor
- message_name: ListTimeSeriesRequest
  field_entity_map:
    name: project
- message_name: CreateTimeSeriesRequest
  field_entity_map:
    name: project
- message_name: ListAlertPoliciesRequest
  field_entity_map:
    name: project
- message_name: GetAlertPolicyRequest
  field_entity_map:
    name: alert_policy
- message_name: CreateAlertPolicyRequest
  field_entity_map:
    name: project
- message_name: DeleteAlertPolicyRequest
  field_entity_map:
    name: alert_policy
- message_name: GetNotificationChannelDescriptorRequest
  field_entity_map:
    name: notification_channel_descriptor
- message_name: ListNotificationChannelDescriptorsRequest
  field_entity_map:
    name: project
- message_name: ListNotificationChannelsRequest
  field_entity_map:
    name: project
- message_name: GetNotificationChannelRequest
  field_entity_map:
    name: notification_channel
- message_name: CreateNotificationChannelRequest
  field_entity_map:
    name: project
- message_name: DeleteNotificationChannelRequest
  field_entity_map:
    name: notification_channel
- message_name: SendNotificationChannelVerificationCodeRequest
  field_entity_map:
    name: notification_channel
- message_name: GetNotificationChannelVerificationCodeRequest
  field_entity_map:
    name: notification_channel
- message_name: VerifyNotificationChannelRequest
  field_entity_map:
    name: notification_channel
- message_name: GetUptimeCheckConfigRequest
  field_entity_map:
    name: uptime_check_config
- message_name: DeleteUptimeCheckConfigRequest
  field_entity_map:
    name: uptime_check_config
- message_name: Service
  field_entity_map:
    name: service
- message_name: ServiceLevelObjective
  field_entity_map:
    name: service_level_objective
- message_name: CreateServiceRequest
  field_entity_map:
    parent: project
- message_name: GetServiceRequest
  field_entity_map:
    name: service
- message_name: ListServicesRequest
  field_entity_map:
    parent: project
- message_name: UpdateServiceRequest
  field_entity_map:
    name: service
- message_name: DeleteServiceRequest
  field_entity_map:
    name: service
- message_name: CreateServiceLevelObjectiveRequest
  field_entity_map:
    parent: service
- message_name: GetServiceLevelObjectiveRequest
  field_entity_map:
    name: service_level_objective
- message_name: ListServiceLevelObjectivesRequest
  field_entity_map:
    parent: service
- message_name: UpdateServiceLevelObjectiveRequest
  field_entity_map:
    name: service_level_objective
- message_name: DeleteServiceLevelObjectiveRequest
  field_entity_map:
    name: service_level_objective
