type: com.google.api.codegen.ConfigProto
config_schema_version: 1.0.0
license_header:
  copyright_file: copyright-google.txt
  license_file: license-header-apache-2.0.txt
language_settings:
  java:
    package_name: com.google.cloud.example.library.spi.v1
  python:
    package_name: google.cloud.gapic.example.library.v1
  go:
    package_name: cloud.google.com/go/example/library/apiv1
  csharp:
    package_name: Google.Example.Library.V1
  ruby:
    package_name: Google::Cloud::Example::Library::V1
  php:
    package_name: Google\Cloud\Example\Library\V1
  nodejs:
    package_name: library.v1
interfaces:
- name: google.example.library.v1.LibraryService
  collections:
  - name_pattern: shelves/{shelf}
    entity_name: shelf
  - name_pattern: shelves/{shelf}/books/{book}
    entity_name: book
  retry_codes_def:
  - name: idempotent
    retry_codes:
    - UNAVAILABLE
    - DEADLINE_EXCEEDED
  - name: non_idempotent
    retry_codes: []
  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
  methods:
  - name: CreateShelf
    flattening:
      groups:
      - parameters:
        - shelf
    required_fields:
    - shelf
    retry_codes_name: non_idempotent
    retry_params_name: default
    timeout_millis: 60000
  - name: GetShelf
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 60000
  - name: ListShelves
    page_streaming:
      request:
        page_size_field: page_size
        token_field: page_token
      response:
        token_field: next_page_token
        resources_field: shelves
    retry_codes_name: idempotent
    retry_params_name: default
    timeout_millis: 60000
  - name: DeleteShelf
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 60000
  - name: MergeShelves
    flattening:
      groups:
      - parameters:
        - name
        - other_shelf_name
    required_fields:
    - name
    - other_shelf_name
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 60000
  - name: CreateBook
    flattening:
      groups:
      - parameters:
        - name
        - book
    required_fields:
    - name
    - book
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 60000
  - name: GetBook
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: book
    timeout_millis: 60000
  - name: ListBooks
    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: books
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 60000
  - name: DeleteBook
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: book
    timeout_millis: 60000
  - name: UpdateBook
    flattening:
      groups:
      - parameters:
        - name
        - book
    required_fields:
    - name
    - book
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: book
    timeout_millis: 60000
  - name: MoveBook
    flattening:
      groups:
      - parameters:
        - name
        - other_shelf_name
    required_fields:
    - name
    - other_shelf_name
    retry_codes_name: non_idempotent
    retry_params_name: default
    field_name_patterns:
      name: book
    timeout_millis: 60000
