aboutsummaryrefslogtreecommitdiff
path: root/google/example/library/v1/library_example_gapic.yaml
blob: 1c7cab2325364978a2ee8635a31983ba16506ac5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
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.example.library.v1
  python:
    package_name: google.cloud.example.library_v1.gapic
  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
# A list of API interface configurations.
interfaces:
# The fully qualified name of the API interface.
- name: google.example.library.v1.LibraryService
  # 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: shelves/{shelf}
    entity_name: shelf
  - name_pattern: shelves/{shelf}/books/{book}
    entity_name: book
  # 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.
  #
  #   resource_name_treatment - An enum that specifies how to treat the resource
  #   name formats defined in the field_name_patterns and
  #   response_field_name_patterns fields.
  #   UNSET: default value
  #   NONE: the collection configs will not be used by the generated code.
  #   VALIDATE: string fields will be validated by the client against the
  #   specified resource name formats.
  #   STATIC_TYPES: the client will use generated types for resource names.
  #
  #   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: CreateShelf
    flattening:
      groups:
      - parameters:
        - shelf
    required_fields:
    - shelf
    retry_codes_name: non_idempotent
    retry_params_name: default
    timeout_millis: 10000
  - name: GetShelf
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 10000
  - 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: 10000
  - name: DeleteShelf
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: shelf
    timeout_millis: 10000
  - 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: 10000
  - 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: 10000
  - name: GetBook
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: book
    timeout_millis: 10000
  - 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: 10000
  - name: DeleteBook
    flattening:
      groups:
      - parameters:
        - name
    required_fields:
    - name
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      name: book
    timeout_millis: 10000
  - name: UpdateBook
    flattening:
      groups:
      - parameters:
        - name
        - book
    required_fields:
    - name
    - book
    retry_codes_name: idempotent
    retry_params_name: default
    field_name_patterns:
      book.name: book
    timeout_millis: 10000
  - 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: 10000