google-apis-apigeeregistry_v1 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,1484 @@
1
+ # Copyright 2020 Google LLC
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ require 'date'
16
+ require 'google/apis/core/base_service'
17
+ require 'google/apis/core/json_representation'
18
+ require 'google/apis/core/hashable'
19
+ require 'google/apis/errors'
20
+
21
+ module Google
22
+ module Apis
23
+ module ApigeeregistryV1
24
+
25
+ # An Api is a top-level description of an API. Apis are produced by producers
26
+ # and are commitments to provide services.
27
+ class Api
28
+ include Google::Apis::Core::Hashable
29
+
30
+ # Annotations attach non-identifying metadata to resources. Annotation keys and
31
+ # values are less restricted than those of labels, but should be generally used
32
+ # for small values of broad interest. Larger, topic- specific metadata should be
33
+ # stored in Artifacts.
34
+ # Corresponds to the JSON property `annotations`
35
+ # @return [Hash<String,String>]
36
+ attr_accessor :annotations
37
+
38
+ # A user-definable description of the availability of this service. Format: free-
39
+ # form, but we expect single words that describe availability, e.g. "NONE", "
40
+ # TESTING", "PREVIEW", "GENERAL", "DEPRECATED", "SHUTDOWN".
41
+ # Corresponds to the JSON property `availability`
42
+ # @return [String]
43
+ attr_accessor :availability
44
+
45
+ # Output only. Creation timestamp.
46
+ # Corresponds to the JSON property `createTime`
47
+ # @return [String]
48
+ attr_accessor :create_time
49
+
50
+ # A detailed description.
51
+ # Corresponds to the JSON property `description`
52
+ # @return [String]
53
+ attr_accessor :description
54
+
55
+ # Human-meaningful name.
56
+ # Corresponds to the JSON property `displayName`
57
+ # @return [String]
58
+ attr_accessor :display_name
59
+
60
+ # Labels attach identifying metadata to resources. Identifying metadata can be
61
+ # used to filter list operations. Label keys and values can be no longer than 64
62
+ # characters (Unicode codepoints), can only contain lowercase letters, numeric
63
+ # characters, underscores and dashes. International characters are allowed. No
64
+ # more than 64 user labels can be associated with one resource (System labels
65
+ # are excluded). See https://goo.gl/xmQnxf for more information and examples of
66
+ # labels. System reserved label keys are prefixed with "apigeeregistry.
67
+ # googleapis.com/" and cannot be changed.
68
+ # Corresponds to the JSON property `labels`
69
+ # @return [Hash<String,String>]
70
+ attr_accessor :labels
71
+
72
+ # Resource name.
73
+ # Corresponds to the JSON property `name`
74
+ # @return [String]
75
+ attr_accessor :name
76
+
77
+ # The recommended deployment of the API. Format: apis/`api`/deployments/`
78
+ # deployment`
79
+ # Corresponds to the JSON property `recommendedDeployment`
80
+ # @return [String]
81
+ attr_accessor :recommended_deployment
82
+
83
+ # The recommended version of the API. Format: apis/`api`/versions/`version`
84
+ # Corresponds to the JSON property `recommendedVersion`
85
+ # @return [String]
86
+ attr_accessor :recommended_version
87
+
88
+ # Output only. Last update timestamp.
89
+ # Corresponds to the JSON property `updateTime`
90
+ # @return [String]
91
+ attr_accessor :update_time
92
+
93
+ def initialize(**args)
94
+ update!(**args)
95
+ end
96
+
97
+ # Update properties of this object
98
+ def update!(**args)
99
+ @annotations = args[:annotations] if args.key?(:annotations)
100
+ @availability = args[:availability] if args.key?(:availability)
101
+ @create_time = args[:create_time] if args.key?(:create_time)
102
+ @description = args[:description] if args.key?(:description)
103
+ @display_name = args[:display_name] if args.key?(:display_name)
104
+ @labels = args[:labels] if args.key?(:labels)
105
+ @name = args[:name] if args.key?(:name)
106
+ @recommended_deployment = args[:recommended_deployment] if args.key?(:recommended_deployment)
107
+ @recommended_version = args[:recommended_version] if args.key?(:recommended_version)
108
+ @update_time = args[:update_time] if args.key?(:update_time)
109
+ end
110
+ end
111
+
112
+ # An ApiDeployment describes a service running at particular address that
113
+ # provides a particular version of an API. ApiDeployments have revisions which
114
+ # correspond to different configurations of a single deployment in time.
115
+ # Revision identifiers should be updated whenever the served API spec or
116
+ # endpoint address changes.
117
+ class ApiDeployment
118
+ include Google::Apis::Core::Hashable
119
+
120
+ # Text briefly describing how to access the endpoint. Changes to this value will
121
+ # not affect the revision.
122
+ # Corresponds to the JSON property `accessGuidance`
123
+ # @return [String]
124
+ attr_accessor :access_guidance
125
+
126
+ # Annotations attach non-identifying metadata to resources. Annotation keys and
127
+ # values are less restricted than those of labels, but should be generally used
128
+ # for small values of broad interest. Larger, topic- specific metadata should be
129
+ # stored in Artifacts.
130
+ # Corresponds to the JSON property `annotations`
131
+ # @return [Hash<String,String>]
132
+ attr_accessor :annotations
133
+
134
+ # The full resource name (including revision id) of the spec of the API being
135
+ # served by the deployment. Changes to this value will update the revision.
136
+ # Format: apis/`api`/deployments/`deployment`
137
+ # Corresponds to the JSON property `apiSpecRevision`
138
+ # @return [String]
139
+ attr_accessor :api_spec_revision
140
+
141
+ # Output only. Creation timestamp; when the deployment resource was created.
142
+ # Corresponds to the JSON property `createTime`
143
+ # @return [String]
144
+ attr_accessor :create_time
145
+
146
+ # A detailed description.
147
+ # Corresponds to the JSON property `description`
148
+ # @return [String]
149
+ attr_accessor :description
150
+
151
+ # Human-meaningful name.
152
+ # Corresponds to the JSON property `displayName`
153
+ # @return [String]
154
+ attr_accessor :display_name
155
+
156
+ # The address where the deployment is serving. Changes to this value will update
157
+ # the revision.
158
+ # Corresponds to the JSON property `endpointUri`
159
+ # @return [String]
160
+ attr_accessor :endpoint_uri
161
+
162
+ # The address of the external channel of the API (e.g. the Developer Portal).
163
+ # Changes to this value will not affect the revision.
164
+ # Corresponds to the JSON property `externalChannelUri`
165
+ # @return [String]
166
+ attr_accessor :external_channel_uri
167
+
168
+ # Text briefly identifying the intended audience of the API. Changes to this
169
+ # value will not affect the revision.
170
+ # Corresponds to the JSON property `intendedAudience`
171
+ # @return [String]
172
+ attr_accessor :intended_audience
173
+
174
+ # Labels attach identifying metadata to resources. Identifying metadata can be
175
+ # used to filter list operations. Label keys and values can be no longer than 64
176
+ # characters (Unicode codepoints), can only contain lowercase letters, numeric
177
+ # characters, underscores and dashes. International characters are allowed. No
178
+ # more than 64 user labels can be associated with one resource (System labels
179
+ # are excluded). See https://goo.gl/xmQnxf for more information and examples of
180
+ # labels. System reserved label keys are prefixed with "apigeeregistry.
181
+ # googleapis.com/" and cannot be changed.
182
+ # Corresponds to the JSON property `labels`
183
+ # @return [Hash<String,String>]
184
+ attr_accessor :labels
185
+
186
+ # Resource name.
187
+ # Corresponds to the JSON property `name`
188
+ # @return [String]
189
+ attr_accessor :name
190
+
191
+ # Output only. Revision creation timestamp; when the represented revision was
192
+ # created.
193
+ # Corresponds to the JSON property `revisionCreateTime`
194
+ # @return [String]
195
+ attr_accessor :revision_create_time
196
+
197
+ # Output only. Immutable. The revision ID of the deployment. A new revision is
198
+ # committed whenever the deployment contents are changed. The format is an 8-
199
+ # character hexadecimal string.
200
+ # Corresponds to the JSON property `revisionId`
201
+ # @return [String]
202
+ attr_accessor :revision_id
203
+
204
+ # Output only. Last update timestamp: when the represented revision was last
205
+ # modified.
206
+ # Corresponds to the JSON property `revisionUpdateTime`
207
+ # @return [String]
208
+ attr_accessor :revision_update_time
209
+
210
+ def initialize(**args)
211
+ update!(**args)
212
+ end
213
+
214
+ # Update properties of this object
215
+ def update!(**args)
216
+ @access_guidance = args[:access_guidance] if args.key?(:access_guidance)
217
+ @annotations = args[:annotations] if args.key?(:annotations)
218
+ @api_spec_revision = args[:api_spec_revision] if args.key?(:api_spec_revision)
219
+ @create_time = args[:create_time] if args.key?(:create_time)
220
+ @description = args[:description] if args.key?(:description)
221
+ @display_name = args[:display_name] if args.key?(:display_name)
222
+ @endpoint_uri = args[:endpoint_uri] if args.key?(:endpoint_uri)
223
+ @external_channel_uri = args[:external_channel_uri] if args.key?(:external_channel_uri)
224
+ @intended_audience = args[:intended_audience] if args.key?(:intended_audience)
225
+ @labels = args[:labels] if args.key?(:labels)
226
+ @name = args[:name] if args.key?(:name)
227
+ @revision_create_time = args[:revision_create_time] if args.key?(:revision_create_time)
228
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
229
+ @revision_update_time = args[:revision_update_time] if args.key?(:revision_update_time)
230
+ end
231
+ end
232
+
233
+ # An ApiSpec describes a version of an API in a structured way. ApiSpecs provide
234
+ # formal descriptions that consumers can use to use a version. ApiSpec resources
235
+ # are intended to be fully-resolved descriptions of an ApiVersion. When specs
236
+ # consist of multiple files, these should be bundled together (e.g. in a zip
237
+ # archive) and stored as a unit. Multiple specs can exist to provide
238
+ # representations in different API description formats. Synchronization of these
239
+ # representations would be provided by tooling and background services.
240
+ class ApiSpec
241
+ include Google::Apis::Core::Hashable
242
+
243
+ # Annotations attach non-identifying metadata to resources. Annotation keys and
244
+ # values are less restricted than those of labels, but should be generally used
245
+ # for small values of broad interest. Larger, topic- specific metadata should be
246
+ # stored in Artifacts.
247
+ # Corresponds to the JSON property `annotations`
248
+ # @return [Hash<String,String>]
249
+ attr_accessor :annotations
250
+
251
+ # Input only. The contents of the spec. Provided by API callers when specs are
252
+ # created or updated. To access the contents of a spec, use GetApiSpecContents.
253
+ # Corresponds to the JSON property `contents`
254
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
255
+ # @return [String]
256
+ attr_accessor :contents
257
+
258
+ # Output only. Creation timestamp; when the spec resource was created.
259
+ # Corresponds to the JSON property `createTime`
260
+ # @return [String]
261
+ attr_accessor :create_time
262
+
263
+ # A detailed description.
264
+ # Corresponds to the JSON property `description`
265
+ # @return [String]
266
+ attr_accessor :description
267
+
268
+ # A possibly-hierarchical name used to refer to the spec from other specs.
269
+ # Corresponds to the JSON property `filename`
270
+ # @return [String]
271
+ attr_accessor :filename
272
+
273
+ # Output only. A SHA-256 hash of the spec's contents. If the spec is gzipped,
274
+ # this is the hash of the uncompressed spec.
275
+ # Corresponds to the JSON property `hash`
276
+ # @return [String]
277
+ attr_accessor :hash_prop
278
+
279
+ # Labels attach identifying metadata to resources. Identifying metadata can be
280
+ # used to filter list operations. Label keys and values can be no longer than 64
281
+ # characters (Unicode codepoints), can only contain lowercase letters, numeric
282
+ # characters, underscores and dashes. International characters are allowed. No
283
+ # more than 64 user labels can be associated with one resource (System labels
284
+ # are excluded). See https://goo.gl/xmQnxf for more information and examples of
285
+ # labels. System reserved label keys are prefixed with "apigeeregistry.
286
+ # googleapis.com/" and cannot be changed.
287
+ # Corresponds to the JSON property `labels`
288
+ # @return [Hash<String,String>]
289
+ attr_accessor :labels
290
+
291
+ # A style (format) descriptor for this spec that is specified as a Media Type (
292
+ # https://en.wikipedia.org/wiki/Media_type). Possible values include "
293
+ # application/vnd.apigee.proto", "application/vnd.apigee.openapi", and "
294
+ # application/vnd.apigee.graphql", with possible suffixes representing
295
+ # compression types. These hypothetical names are defined in the vendor tree
296
+ # defined in RFC6838 (https://tools.ietf.org/html/rfc6838) and are not final.
297
+ # Content types can specify compression. Currently only GZip compression is
298
+ # supported (indicated with "+gzip").
299
+ # Corresponds to the JSON property `mimeType`
300
+ # @return [String]
301
+ attr_accessor :mime_type
302
+
303
+ # Resource name.
304
+ # Corresponds to the JSON property `name`
305
+ # @return [String]
306
+ attr_accessor :name
307
+
308
+ # Output only. Revision creation timestamp; when the represented revision was
309
+ # created.
310
+ # Corresponds to the JSON property `revisionCreateTime`
311
+ # @return [String]
312
+ attr_accessor :revision_create_time
313
+
314
+ # Output only. Immutable. The revision ID of the spec. A new revision is
315
+ # committed whenever the spec contents are changed. The format is an 8-character
316
+ # hexadecimal string.
317
+ # Corresponds to the JSON property `revisionId`
318
+ # @return [String]
319
+ attr_accessor :revision_id
320
+
321
+ # Output only. Last update timestamp: when the represented revision was last
322
+ # modified.
323
+ # Corresponds to the JSON property `revisionUpdateTime`
324
+ # @return [String]
325
+ attr_accessor :revision_update_time
326
+
327
+ # Output only. The size of the spec file in bytes. If the spec is gzipped, this
328
+ # is the size of the uncompressed spec.
329
+ # Corresponds to the JSON property `sizeBytes`
330
+ # @return [Fixnum]
331
+ attr_accessor :size_bytes
332
+
333
+ # The original source URI of the spec (if one exists). This is an external
334
+ # location that can be used for reference purposes but which may not be
335
+ # authoritative since this external resource may change after the spec is
336
+ # retrieved.
337
+ # Corresponds to the JSON property `sourceUri`
338
+ # @return [String]
339
+ attr_accessor :source_uri
340
+
341
+ def initialize(**args)
342
+ update!(**args)
343
+ end
344
+
345
+ # Update properties of this object
346
+ def update!(**args)
347
+ @annotations = args[:annotations] if args.key?(:annotations)
348
+ @contents = args[:contents] if args.key?(:contents)
349
+ @create_time = args[:create_time] if args.key?(:create_time)
350
+ @description = args[:description] if args.key?(:description)
351
+ @filename = args[:filename] if args.key?(:filename)
352
+ @hash_prop = args[:hash_prop] if args.key?(:hash_prop)
353
+ @labels = args[:labels] if args.key?(:labels)
354
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
355
+ @name = args[:name] if args.key?(:name)
356
+ @revision_create_time = args[:revision_create_time] if args.key?(:revision_create_time)
357
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
358
+ @revision_update_time = args[:revision_update_time] if args.key?(:revision_update_time)
359
+ @size_bytes = args[:size_bytes] if args.key?(:size_bytes)
360
+ @source_uri = args[:source_uri] if args.key?(:source_uri)
361
+ end
362
+ end
363
+
364
+ # An ApiVersion describes a particular version of an API. ApiVersions are what
365
+ # consumers actually use.
366
+ class ApiVersion
367
+ include Google::Apis::Core::Hashable
368
+
369
+ # Annotations attach non-identifying metadata to resources. Annotation keys and
370
+ # values are less restricted than those of labels, but should be generally used
371
+ # for small values of broad interest. Larger, topic- specific metadata should be
372
+ # stored in Artifacts.
373
+ # Corresponds to the JSON property `annotations`
374
+ # @return [Hash<String,String>]
375
+ attr_accessor :annotations
376
+
377
+ # Output only. Creation timestamp.
378
+ # Corresponds to the JSON property `createTime`
379
+ # @return [String]
380
+ attr_accessor :create_time
381
+
382
+ # A detailed description.
383
+ # Corresponds to the JSON property `description`
384
+ # @return [String]
385
+ attr_accessor :description
386
+
387
+ # Human-meaningful name.
388
+ # Corresponds to the JSON property `displayName`
389
+ # @return [String]
390
+ attr_accessor :display_name
391
+
392
+ # Labels attach identifying metadata to resources. Identifying metadata can be
393
+ # used to filter list operations. Label keys and values can be no longer than 64
394
+ # characters (Unicode codepoints), can only contain lowercase letters, numeric
395
+ # characters, underscores and dashes. International characters are allowed. No
396
+ # more than 64 user labels can be associated with one resource (System labels
397
+ # are excluded). See https://goo.gl/xmQnxf for more information and examples of
398
+ # labels. System reserved label keys are prefixed with "apigeeregistry.
399
+ # googleapis.com/" and cannot be changed.
400
+ # Corresponds to the JSON property `labels`
401
+ # @return [Hash<String,String>]
402
+ attr_accessor :labels
403
+
404
+ # Resource name.
405
+ # Corresponds to the JSON property `name`
406
+ # @return [String]
407
+ attr_accessor :name
408
+
409
+ # A user-definable description of the lifecycle phase of this API version.
410
+ # Format: free-form, but we expect single words that describe API maturity, e.g.
411
+ # "CONCEPT", "DESIGN", "DEVELOPMENT", "STAGING", "PRODUCTION", "DEPRECATED", "
412
+ # RETIRED".
413
+ # Corresponds to the JSON property `state`
414
+ # @return [String]
415
+ attr_accessor :state
416
+
417
+ # Output only. Last update timestamp.
418
+ # Corresponds to the JSON property `updateTime`
419
+ # @return [String]
420
+ attr_accessor :update_time
421
+
422
+ def initialize(**args)
423
+ update!(**args)
424
+ end
425
+
426
+ # Update properties of this object
427
+ def update!(**args)
428
+ @annotations = args[:annotations] if args.key?(:annotations)
429
+ @create_time = args[:create_time] if args.key?(:create_time)
430
+ @description = args[:description] if args.key?(:description)
431
+ @display_name = args[:display_name] if args.key?(:display_name)
432
+ @labels = args[:labels] if args.key?(:labels)
433
+ @name = args[:name] if args.key?(:name)
434
+ @state = args[:state] if args.key?(:state)
435
+ @update_time = args[:update_time] if args.key?(:update_time)
436
+ end
437
+ end
438
+
439
+ # Artifacts of resources. Artifacts are unique (single-value) per resource and
440
+ # are used to store metadata that is too large or numerous to be stored directly
441
+ # on the resource. Since artifacts are stored separately from parent resources,
442
+ # they should generally be used for metadata that is needed infrequently, i.e.
443
+ # not for display in primary views of the resource but perhaps displayed or
444
+ # downloaded upon request. The ListArtifacts method allows artifacts to be
445
+ # quickly enumerated and checked for presence without downloading their (
446
+ # potentially-large) contents.
447
+ class Artifact
448
+ include Google::Apis::Core::Hashable
449
+
450
+ # Input only. The contents of the artifact. Provided by API callers when
451
+ # artifacts are created or replaced. To access the contents of an artifact, use
452
+ # GetArtifactContents.
453
+ # Corresponds to the JSON property `contents`
454
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
455
+ # @return [String]
456
+ attr_accessor :contents
457
+
458
+ # Output only. Creation timestamp.
459
+ # Corresponds to the JSON property `createTime`
460
+ # @return [String]
461
+ attr_accessor :create_time
462
+
463
+ # Output only. A SHA-256 hash of the artifact's contents. If the artifact is
464
+ # gzipped, this is the hash of the uncompressed artifact.
465
+ # Corresponds to the JSON property `hash`
466
+ # @return [String]
467
+ attr_accessor :hash_prop
468
+
469
+ # A content type specifier for the artifact. Content type specifiers are Media
470
+ # Types (https://en.wikipedia.org/wiki/Media_type) with a possible "schema"
471
+ # parameter that specifies a schema for the stored information. Content types
472
+ # can specify compression. Currently only GZip compression is supported (
473
+ # indicated with "+gzip").
474
+ # Corresponds to the JSON property `mimeType`
475
+ # @return [String]
476
+ attr_accessor :mime_type
477
+
478
+ # Resource name.
479
+ # Corresponds to the JSON property `name`
480
+ # @return [String]
481
+ attr_accessor :name
482
+
483
+ # Output only. The size of the artifact in bytes. If the artifact is gzipped,
484
+ # this is the size of the uncompressed artifact.
485
+ # Corresponds to the JSON property `sizeBytes`
486
+ # @return [Fixnum]
487
+ attr_accessor :size_bytes
488
+
489
+ # Output only. Last update timestamp.
490
+ # Corresponds to the JSON property `updateTime`
491
+ # @return [String]
492
+ attr_accessor :update_time
493
+
494
+ def initialize(**args)
495
+ update!(**args)
496
+ end
497
+
498
+ # Update properties of this object
499
+ def update!(**args)
500
+ @contents = args[:contents] if args.key?(:contents)
501
+ @create_time = args[:create_time] if args.key?(:create_time)
502
+ @hash_prop = args[:hash_prop] if args.key?(:hash_prop)
503
+ @mime_type = args[:mime_type] if args.key?(:mime_type)
504
+ @name = args[:name] if args.key?(:name)
505
+ @size_bytes = args[:size_bytes] if args.key?(:size_bytes)
506
+ @update_time = args[:update_time] if args.key?(:update_time)
507
+ end
508
+ end
509
+
510
+ # Associates `members`, or principals, with a `role`.
511
+ class Binding
512
+ include Google::Apis::Core::Hashable
513
+
514
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
515
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
516
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
517
+ # "Summary size limit" description: "Determines if a summary is less than 100
518
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
519
+ # Requestor is owner" description: "Determines if requestor is the document
520
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
521
+ # Logic): title: "Public documents" description: "Determine whether the document
522
+ # should be publicly visible" expression: "document.type != 'private' &&
523
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
524
+ # string" description: "Create a notification string with a timestamp."
525
+ # expression: "'New message received at ' + string(document.create_time)" The
526
+ # exact variables and functions that may be referenced within an expression are
527
+ # determined by the service that evaluates it. See the service documentation for
528
+ # additional information.
529
+ # Corresponds to the JSON property `condition`
530
+ # @return [Google::Apis::ApigeeregistryV1::Expr]
531
+ attr_accessor :condition
532
+
533
+ # Specifies the principals requesting access for a Google Cloud resource. `
534
+ # members` can have the following values: * `allUsers`: A special identifier
535
+ # that represents anyone who is on the internet; with or without a Google
536
+ # account. * `allAuthenticatedUsers`: A special identifier that represents
537
+ # anyone who is authenticated with a Google account or a service account. * `
538
+ # user:`emailid``: An email address that represents a specific Google account.
539
+ # For example, `alice@example.com` . * `serviceAccount:`emailid``: An email
540
+ # address that represents a service account. For example, `my-other-app@appspot.
541
+ # gserviceaccount.com`. * `group:`emailid``: An email address that represents a
542
+ # Google group. For example, `admins@example.com`. * `deleted:user:`emailid`?uid=
543
+ # `uniqueid``: An email address (plus unique identifier) representing a user
544
+ # that has been recently deleted. For example, `alice@example.com?uid=
545
+ # 123456789012345678901`. If the user is recovered, this value reverts to `user:`
546
+ # emailid`` and the recovered user retains the role in the binding. * `deleted:
547
+ # serviceAccount:`emailid`?uid=`uniqueid``: An email address (plus unique
548
+ # identifier) representing a service account that has been recently deleted. For
549
+ # example, `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
550
+ # If the service account is undeleted, this value reverts to `serviceAccount:`
551
+ # emailid`` and the undeleted service account retains the role in the binding. *
552
+ # `deleted:group:`emailid`?uid=`uniqueid``: An email address (plus unique
553
+ # identifier) representing a Google group that has been recently deleted. For
554
+ # example, `admins@example.com?uid=123456789012345678901`. If the group is
555
+ # recovered, this value reverts to `group:`emailid`` and the recovered group
556
+ # retains the role in the binding. * `domain:`domain``: The G Suite domain (
557
+ # primary) that represents all the users of that domain. For example, `google.
558
+ # com` or `example.com`.
559
+ # Corresponds to the JSON property `members`
560
+ # @return [Array<String>]
561
+ attr_accessor :members
562
+
563
+ # Role that is assigned to the list of `members`, or principals. For example, `
564
+ # roles/viewer`, `roles/editor`, or `roles/owner`.
565
+ # Corresponds to the JSON property `role`
566
+ # @return [String]
567
+ attr_accessor :role
568
+
569
+ def initialize(**args)
570
+ update!(**args)
571
+ end
572
+
573
+ # Update properties of this object
574
+ def update!(**args)
575
+ @condition = args[:condition] if args.key?(:condition)
576
+ @members = args[:members] if args.key?(:members)
577
+ @role = args[:role] if args.key?(:role)
578
+ end
579
+ end
580
+
581
+ # The request message for Operations.CancelOperation.
582
+ class CancelOperationRequest
583
+ include Google::Apis::Core::Hashable
584
+
585
+ def initialize(**args)
586
+ update!(**args)
587
+ end
588
+
589
+ # Update properties of this object
590
+ def update!(**args)
591
+ end
592
+ end
593
+
594
+ # Available configurations to provision an Instance.
595
+ class Config
596
+ include Google::Apis::Core::Hashable
597
+
598
+ # Required. The Customer Managed Encryption Key (CMEK) used for data encryption.
599
+ # The CMEK name should follow the format of `projects/([^/]+)/locations/([^/]+)/
600
+ # keyRings/([^/]+)/cryptoKeys/([^/]+)`, where the `location` must match
601
+ # InstanceConfig.location.
602
+ # Corresponds to the JSON property `cmekKeyName`
603
+ # @return [String]
604
+ attr_accessor :cmek_key_name
605
+
606
+ # Output only. The GCP location where the Instance resides.
607
+ # Corresponds to the JSON property `location`
608
+ # @return [String]
609
+ attr_accessor :location
610
+
611
+ def initialize(**args)
612
+ update!(**args)
613
+ end
614
+
615
+ # Update properties of this object
616
+ def update!(**args)
617
+ @cmek_key_name = args[:cmek_key_name] if args.key?(:cmek_key_name)
618
+ @location = args[:location] if args.key?(:location)
619
+ end
620
+ end
621
+
622
+ # A generic empty message that you can re-use to avoid defining duplicated empty
623
+ # messages in your APIs. A typical example is to use it as the request or the
624
+ # response type of an API method. For instance: service Foo ` rpc Bar(google.
625
+ # protobuf.Empty) returns (google.protobuf.Empty); `
626
+ class Empty
627
+ include Google::Apis::Core::Hashable
628
+
629
+ def initialize(**args)
630
+ update!(**args)
631
+ end
632
+
633
+ # Update properties of this object
634
+ def update!(**args)
635
+ end
636
+ end
637
+
638
+ # Represents a textual expression in the Common Expression Language (CEL) syntax.
639
+ # CEL is a C-like expression language. The syntax and semantics of CEL are
640
+ # documented at https://github.com/google/cel-spec. Example (Comparison): title:
641
+ # "Summary size limit" description: "Determines if a summary is less than 100
642
+ # chars" expression: "document.summary.size() < 100" Example (Equality): title: "
643
+ # Requestor is owner" description: "Determines if requestor is the document
644
+ # owner" expression: "document.owner == request.auth.claims.email" Example (
645
+ # Logic): title: "Public documents" description: "Determine whether the document
646
+ # should be publicly visible" expression: "document.type != 'private' &&
647
+ # document.type != 'internal'" Example (Data Manipulation): title: "Notification
648
+ # string" description: "Create a notification string with a timestamp."
649
+ # expression: "'New message received at ' + string(document.create_time)" The
650
+ # exact variables and functions that may be referenced within an expression are
651
+ # determined by the service that evaluates it. See the service documentation for
652
+ # additional information.
653
+ class Expr
654
+ include Google::Apis::Core::Hashable
655
+
656
+ # Optional. Description of the expression. This is a longer text which describes
657
+ # the expression, e.g. when hovered over it in a UI.
658
+ # Corresponds to the JSON property `description`
659
+ # @return [String]
660
+ attr_accessor :description
661
+
662
+ # Textual representation of an expression in Common Expression Language syntax.
663
+ # Corresponds to the JSON property `expression`
664
+ # @return [String]
665
+ attr_accessor :expression
666
+
667
+ # Optional. String indicating the location of the expression for error reporting,
668
+ # e.g. a file name and a position in the file.
669
+ # Corresponds to the JSON property `location`
670
+ # @return [String]
671
+ attr_accessor :location
672
+
673
+ # Optional. Title for the expression, i.e. a short string describing its purpose.
674
+ # This can be used e.g. in UIs which allow to enter the expression.
675
+ # Corresponds to the JSON property `title`
676
+ # @return [String]
677
+ attr_accessor :title
678
+
679
+ def initialize(**args)
680
+ update!(**args)
681
+ end
682
+
683
+ # Update properties of this object
684
+ def update!(**args)
685
+ @description = args[:description] if args.key?(:description)
686
+ @expression = args[:expression] if args.key?(:expression)
687
+ @location = args[:location] if args.key?(:location)
688
+ @title = args[:title] if args.key?(:title)
689
+ end
690
+ end
691
+
692
+ # Message that represents an arbitrary HTTP body. It should only be used for
693
+ # payload formats that can't be represented as JSON, such as raw binary or an
694
+ # HTML page. This message can be used both in streaming and non-streaming API
695
+ # methods in the request as well as the response. It can be used as a top-level
696
+ # request field, which is convenient if one wants to extract parameters from
697
+ # either the URL or HTTP template into the request fields and also want access
698
+ # to the raw HTTP body. Example: message GetResourceRequest ` // A unique
699
+ # request id. string request_id = 1; // The raw HTTP body is bound to this field.
700
+ # google.api.HttpBody http_body = 2; ` service ResourceService ` rpc
701
+ # GetResource(GetResourceRequest) returns (google.api.HttpBody); rpc
702
+ # UpdateResource(google.api.HttpBody) returns (google.protobuf.Empty); ` Example
703
+ # with streaming methods: service CaldavService ` rpc GetCalendar(stream google.
704
+ # api.HttpBody) returns (stream google.api.HttpBody); rpc UpdateCalendar(stream
705
+ # google.api.HttpBody) returns (stream google.api.HttpBody); ` Use of this type
706
+ # only changes how the request and response bodies are handled, all other
707
+ # features will continue to work unchanged.
708
+ class HttpBody
709
+ include Google::Apis::Core::Hashable
710
+
711
+ # The HTTP Content-Type header value specifying the content type of the body.
712
+ # Corresponds to the JSON property `contentType`
713
+ # @return [String]
714
+ attr_accessor :content_type
715
+
716
+ # The HTTP request/response body as raw binary.
717
+ # Corresponds to the JSON property `data`
718
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
719
+ # @return [String]
720
+ attr_accessor :data
721
+
722
+ # Application specific response metadata. Must be set in the first response for
723
+ # streaming APIs.
724
+ # Corresponds to the JSON property `extensions`
725
+ # @return [Array<Hash<String,Object>>]
726
+ attr_accessor :extensions
727
+
728
+ def initialize(**args)
729
+ update!(**args)
730
+ end
731
+
732
+ # Update properties of this object
733
+ def update!(**args)
734
+ @content_type = args[:content_type] if args.key?(:content_type)
735
+ @data = args[:data] if args.key?(:data)
736
+ @extensions = args[:extensions] if args.key?(:extensions)
737
+ end
738
+ end
739
+
740
+ # An Instance represents the instance resources of the Registry. Currently, only
741
+ # one instance is allowed for each project.
742
+ class Instance
743
+ include Google::Apis::Core::Hashable
744
+
745
+ # Available configurations to provision an Instance.
746
+ # Corresponds to the JSON property `config`
747
+ # @return [Google::Apis::ApigeeregistryV1::Config]
748
+ attr_accessor :config
749
+
750
+ # Output only. Creation timestamp.
751
+ # Corresponds to the JSON property `createTime`
752
+ # @return [String]
753
+ attr_accessor :create_time
754
+
755
+ # Format: `projects/*/locations/*/instance`. Currently only locations/global is
756
+ # supported.
757
+ # Corresponds to the JSON property `name`
758
+ # @return [String]
759
+ attr_accessor :name
760
+
761
+ # Output only. The current state of the Instance.
762
+ # Corresponds to the JSON property `state`
763
+ # @return [String]
764
+ attr_accessor :state
765
+
766
+ # Output only. Extra information of Instance.State if the state is `FAILED`.
767
+ # Corresponds to the JSON property `stateMessage`
768
+ # @return [String]
769
+ attr_accessor :state_message
770
+
771
+ # Output only. Last update timestamp.
772
+ # Corresponds to the JSON property `updateTime`
773
+ # @return [String]
774
+ attr_accessor :update_time
775
+
776
+ def initialize(**args)
777
+ update!(**args)
778
+ end
779
+
780
+ # Update properties of this object
781
+ def update!(**args)
782
+ @config = args[:config] if args.key?(:config)
783
+ @create_time = args[:create_time] if args.key?(:create_time)
784
+ @name = args[:name] if args.key?(:name)
785
+ @state = args[:state] if args.key?(:state)
786
+ @state_message = args[:state_message] if args.key?(:state_message)
787
+ @update_time = args[:update_time] if args.key?(:update_time)
788
+ end
789
+ end
790
+
791
+ # Response message for ListApiDeploymentRevisionsResponse.
792
+ class ListApiDeploymentRevisionsResponse
793
+ include Google::Apis::Core::Hashable
794
+
795
+ # The revisions of the deployment.
796
+ # Corresponds to the JSON property `apiDeployments`
797
+ # @return [Array<Google::Apis::ApigeeregistryV1::ApiDeployment>]
798
+ attr_accessor :api_deployments
799
+
800
+ # A token that can be sent as `page_token` to retrieve the next page. If this
801
+ # field is omitted, there are no subsequent pages.
802
+ # Corresponds to the JSON property `nextPageToken`
803
+ # @return [String]
804
+ attr_accessor :next_page_token
805
+
806
+ def initialize(**args)
807
+ update!(**args)
808
+ end
809
+
810
+ # Update properties of this object
811
+ def update!(**args)
812
+ @api_deployments = args[:api_deployments] if args.key?(:api_deployments)
813
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
814
+ end
815
+ end
816
+
817
+ # Response message for ListApiDeployments.
818
+ class ListApiDeploymentsResponse
819
+ include Google::Apis::Core::Hashable
820
+
821
+ # The deployments from the specified publisher.
822
+ # Corresponds to the JSON property `apiDeployments`
823
+ # @return [Array<Google::Apis::ApigeeregistryV1::ApiDeployment>]
824
+ attr_accessor :api_deployments
825
+
826
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
827
+ # field is omitted, there are no subsequent pages.
828
+ # Corresponds to the JSON property `nextPageToken`
829
+ # @return [String]
830
+ attr_accessor :next_page_token
831
+
832
+ def initialize(**args)
833
+ update!(**args)
834
+ end
835
+
836
+ # Update properties of this object
837
+ def update!(**args)
838
+ @api_deployments = args[:api_deployments] if args.key?(:api_deployments)
839
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
840
+ end
841
+ end
842
+
843
+ # Response message for ListApiSpecRevisionsResponse.
844
+ class ListApiSpecRevisionsResponse
845
+ include Google::Apis::Core::Hashable
846
+
847
+ # The revisions of the spec.
848
+ # Corresponds to the JSON property `apiSpecs`
849
+ # @return [Array<Google::Apis::ApigeeregistryV1::ApiSpec>]
850
+ attr_accessor :api_specs
851
+
852
+ # A token that can be sent as `page_token` to retrieve the next page. If this
853
+ # field is omitted, there are no subsequent pages.
854
+ # Corresponds to the JSON property `nextPageToken`
855
+ # @return [String]
856
+ attr_accessor :next_page_token
857
+
858
+ def initialize(**args)
859
+ update!(**args)
860
+ end
861
+
862
+ # Update properties of this object
863
+ def update!(**args)
864
+ @api_specs = args[:api_specs] if args.key?(:api_specs)
865
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
866
+ end
867
+ end
868
+
869
+ # Response message for ListApiSpecs.
870
+ class ListApiSpecsResponse
871
+ include Google::Apis::Core::Hashable
872
+
873
+ # The specs from the specified publisher.
874
+ # Corresponds to the JSON property `apiSpecs`
875
+ # @return [Array<Google::Apis::ApigeeregistryV1::ApiSpec>]
876
+ attr_accessor :api_specs
877
+
878
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
879
+ # field is omitted, there are no subsequent pages.
880
+ # Corresponds to the JSON property `nextPageToken`
881
+ # @return [String]
882
+ attr_accessor :next_page_token
883
+
884
+ def initialize(**args)
885
+ update!(**args)
886
+ end
887
+
888
+ # Update properties of this object
889
+ def update!(**args)
890
+ @api_specs = args[:api_specs] if args.key?(:api_specs)
891
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
892
+ end
893
+ end
894
+
895
+ # Response message for ListApiVersions.
896
+ class ListApiVersionsResponse
897
+ include Google::Apis::Core::Hashable
898
+
899
+ # The versions from the specified publisher.
900
+ # Corresponds to the JSON property `apiVersions`
901
+ # @return [Array<Google::Apis::ApigeeregistryV1::ApiVersion>]
902
+ attr_accessor :api_versions
903
+
904
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
905
+ # field is omitted, there are no subsequent pages.
906
+ # Corresponds to the JSON property `nextPageToken`
907
+ # @return [String]
908
+ attr_accessor :next_page_token
909
+
910
+ def initialize(**args)
911
+ update!(**args)
912
+ end
913
+
914
+ # Update properties of this object
915
+ def update!(**args)
916
+ @api_versions = args[:api_versions] if args.key?(:api_versions)
917
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
918
+ end
919
+ end
920
+
921
+ # Response message for ListApis.
922
+ class ListApisResponse
923
+ include Google::Apis::Core::Hashable
924
+
925
+ # The APIs from the specified publisher.
926
+ # Corresponds to the JSON property `apis`
927
+ # @return [Array<Google::Apis::ApigeeregistryV1::Api>]
928
+ attr_accessor :apis
929
+
930
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
931
+ # field is omitted, there are no subsequent pages.
932
+ # Corresponds to the JSON property `nextPageToken`
933
+ # @return [String]
934
+ attr_accessor :next_page_token
935
+
936
+ def initialize(**args)
937
+ update!(**args)
938
+ end
939
+
940
+ # Update properties of this object
941
+ def update!(**args)
942
+ @apis = args[:apis] if args.key?(:apis)
943
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
944
+ end
945
+ end
946
+
947
+ # Response message for ListArtifacts.
948
+ class ListArtifactsResponse
949
+ include Google::Apis::Core::Hashable
950
+
951
+ # The artifacts from the specified publisher.
952
+ # Corresponds to the JSON property `artifacts`
953
+ # @return [Array<Google::Apis::ApigeeregistryV1::Artifact>]
954
+ attr_accessor :artifacts
955
+
956
+ # A token, which can be sent as `page_token` to retrieve the next page. If this
957
+ # field is omitted, there are no subsequent pages.
958
+ # Corresponds to the JSON property `nextPageToken`
959
+ # @return [String]
960
+ attr_accessor :next_page_token
961
+
962
+ def initialize(**args)
963
+ update!(**args)
964
+ end
965
+
966
+ # Update properties of this object
967
+ def update!(**args)
968
+ @artifacts = args[:artifacts] if args.key?(:artifacts)
969
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
970
+ end
971
+ end
972
+
973
+ # The response message for Locations.ListLocations.
974
+ class ListLocationsResponse
975
+ include Google::Apis::Core::Hashable
976
+
977
+ # A list of locations that matches the specified filter in the request.
978
+ # Corresponds to the JSON property `locations`
979
+ # @return [Array<Google::Apis::ApigeeregistryV1::Location>]
980
+ attr_accessor :locations
981
+
982
+ # The standard List next-page token.
983
+ # Corresponds to the JSON property `nextPageToken`
984
+ # @return [String]
985
+ attr_accessor :next_page_token
986
+
987
+ def initialize(**args)
988
+ update!(**args)
989
+ end
990
+
991
+ # Update properties of this object
992
+ def update!(**args)
993
+ @locations = args[:locations] if args.key?(:locations)
994
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
995
+ end
996
+ end
997
+
998
+ # The response message for Operations.ListOperations.
999
+ class ListOperationsResponse
1000
+ include Google::Apis::Core::Hashable
1001
+
1002
+ # The standard List next-page token.
1003
+ # Corresponds to the JSON property `nextPageToken`
1004
+ # @return [String]
1005
+ attr_accessor :next_page_token
1006
+
1007
+ # A list of operations that matches the specified filter in the request.
1008
+ # Corresponds to the JSON property `operations`
1009
+ # @return [Array<Google::Apis::ApigeeregistryV1::Operation>]
1010
+ attr_accessor :operations
1011
+
1012
+ def initialize(**args)
1013
+ update!(**args)
1014
+ end
1015
+
1016
+ # Update properties of this object
1017
+ def update!(**args)
1018
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
1019
+ @operations = args[:operations] if args.key?(:operations)
1020
+ end
1021
+ end
1022
+
1023
+ # A resource that represents Google Cloud Platform location.
1024
+ class Location
1025
+ include Google::Apis::Core::Hashable
1026
+
1027
+ # The friendly name for this location, typically a nearby city name. For example,
1028
+ # "Tokyo".
1029
+ # Corresponds to the JSON property `displayName`
1030
+ # @return [String]
1031
+ attr_accessor :display_name
1032
+
1033
+ # Cross-service attributes for the location. For example `"cloud.googleapis.com/
1034
+ # region": "us-east1"`
1035
+ # Corresponds to the JSON property `labels`
1036
+ # @return [Hash<String,String>]
1037
+ attr_accessor :labels
1038
+
1039
+ # The canonical id for this location. For example: `"us-east1"`.
1040
+ # Corresponds to the JSON property `locationId`
1041
+ # @return [String]
1042
+ attr_accessor :location_id
1043
+
1044
+ # Service-specific metadata. For example the available capacity at the given
1045
+ # location.
1046
+ # Corresponds to the JSON property `metadata`
1047
+ # @return [Hash<String,Object>]
1048
+ attr_accessor :metadata
1049
+
1050
+ # Resource name for the location, which may vary between implementations. For
1051
+ # example: `"projects/example-project/locations/us-east1"`
1052
+ # Corresponds to the JSON property `name`
1053
+ # @return [String]
1054
+ attr_accessor :name
1055
+
1056
+ def initialize(**args)
1057
+ update!(**args)
1058
+ end
1059
+
1060
+ # Update properties of this object
1061
+ def update!(**args)
1062
+ @display_name = args[:display_name] if args.key?(:display_name)
1063
+ @labels = args[:labels] if args.key?(:labels)
1064
+ @location_id = args[:location_id] if args.key?(:location_id)
1065
+ @metadata = args[:metadata] if args.key?(:metadata)
1066
+ @name = args[:name] if args.key?(:name)
1067
+ end
1068
+ end
1069
+
1070
+ # This resource represents a long-running operation that is the result of a
1071
+ # network API call.
1072
+ class Operation
1073
+ include Google::Apis::Core::Hashable
1074
+
1075
+ # If the value is `false`, it means the operation is still in progress. If `true`
1076
+ # , the operation is completed, and either `error` or `response` is available.
1077
+ # Corresponds to the JSON property `done`
1078
+ # @return [Boolean]
1079
+ attr_accessor :done
1080
+ alias_method :done?, :done
1081
+
1082
+ # The `Status` type defines a logical error model that is suitable for different
1083
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1084
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1085
+ # data: error code, error message, and error details. You can find out more
1086
+ # about this error model and how to work with it in the [API Design Guide](https:
1087
+ # //cloud.google.com/apis/design/errors).
1088
+ # Corresponds to the JSON property `error`
1089
+ # @return [Google::Apis::ApigeeregistryV1::Status]
1090
+ attr_accessor :error
1091
+
1092
+ # Service-specific metadata associated with the operation. It typically contains
1093
+ # progress information and common metadata such as create time. Some services
1094
+ # might not provide such metadata. Any method that returns a long-running
1095
+ # operation should document the metadata type, if any.
1096
+ # Corresponds to the JSON property `metadata`
1097
+ # @return [Hash<String,Object>]
1098
+ attr_accessor :metadata
1099
+
1100
+ # The server-assigned name, which is only unique within the same service that
1101
+ # originally returns it. If you use the default HTTP mapping, the `name` should
1102
+ # be a resource name ending with `operations/`unique_id``.
1103
+ # Corresponds to the JSON property `name`
1104
+ # @return [String]
1105
+ attr_accessor :name
1106
+
1107
+ # The normal response of the operation in case of success. If the original
1108
+ # method returns no data on success, such as `Delete`, the response is `google.
1109
+ # protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`,
1110
+ # the response should be the resource. For other methods, the response should
1111
+ # have the type `XxxResponse`, where `Xxx` is the original method name. For
1112
+ # example, if the original method name is `TakeSnapshot()`, the inferred
1113
+ # response type is `TakeSnapshotResponse`.
1114
+ # Corresponds to the JSON property `response`
1115
+ # @return [Hash<String,Object>]
1116
+ attr_accessor :response
1117
+
1118
+ def initialize(**args)
1119
+ update!(**args)
1120
+ end
1121
+
1122
+ # Update properties of this object
1123
+ def update!(**args)
1124
+ @done = args[:done] if args.key?(:done)
1125
+ @error = args[:error] if args.key?(:error)
1126
+ @metadata = args[:metadata] if args.key?(:metadata)
1127
+ @name = args[:name] if args.key?(:name)
1128
+ @response = args[:response] if args.key?(:response)
1129
+ end
1130
+ end
1131
+
1132
+ # Represents the metadata of the long-running operation.
1133
+ class OperationMetadata
1134
+ include Google::Apis::Core::Hashable
1135
+
1136
+ # API version used to start the operation.
1137
+ # Corresponds to the JSON property `apiVersion`
1138
+ # @return [String]
1139
+ attr_accessor :api_version
1140
+
1141
+ # Identifies whether the user has requested cancellation of the operation.
1142
+ # Operations that have successfully been cancelled have Operation.error value
1143
+ # with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.
1144
+ # Corresponds to the JSON property `cancellationRequested`
1145
+ # @return [Boolean]
1146
+ attr_accessor :cancellation_requested
1147
+ alias_method :cancellation_requested?, :cancellation_requested
1148
+
1149
+ # The time the operation was created.
1150
+ # Corresponds to the JSON property `createTime`
1151
+ # @return [String]
1152
+ attr_accessor :create_time
1153
+
1154
+ # The time the operation finished running.
1155
+ # Corresponds to the JSON property `endTime`
1156
+ # @return [String]
1157
+ attr_accessor :end_time
1158
+
1159
+ # Human-readable status of the operation, if any.
1160
+ # Corresponds to the JSON property `statusMessage`
1161
+ # @return [String]
1162
+ attr_accessor :status_message
1163
+
1164
+ # Server-defined resource path for the target of the operation.
1165
+ # Corresponds to the JSON property `target`
1166
+ # @return [String]
1167
+ attr_accessor :target
1168
+
1169
+ # Name of the verb executed by the operation.
1170
+ # Corresponds to the JSON property `verb`
1171
+ # @return [String]
1172
+ attr_accessor :verb
1173
+
1174
+ def initialize(**args)
1175
+ update!(**args)
1176
+ end
1177
+
1178
+ # Update properties of this object
1179
+ def update!(**args)
1180
+ @api_version = args[:api_version] if args.key?(:api_version)
1181
+ @cancellation_requested = args[:cancellation_requested] if args.key?(:cancellation_requested)
1182
+ @create_time = args[:create_time] if args.key?(:create_time)
1183
+ @end_time = args[:end_time] if args.key?(:end_time)
1184
+ @status_message = args[:status_message] if args.key?(:status_message)
1185
+ @target = args[:target] if args.key?(:target)
1186
+ @verb = args[:verb] if args.key?(:verb)
1187
+ end
1188
+ end
1189
+
1190
+ # An Identity and Access Management (IAM) policy, which specifies access
1191
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1192
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1193
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1194
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1195
+ # an IAM predefined role or a user-created custom role. For some types of Google
1196
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1197
+ # logical expression that allows access to a resource only if the expression
1198
+ # evaluates to `true`. A condition can add constraints based on attributes of
1199
+ # the request, the resource, or both. To learn which resources support
1200
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1201
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1202
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1203
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1204
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1205
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1206
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1207
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1208
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1209
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1210
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1211
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1212
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1213
+ # access description: Does not grant access after Sep 2020 expression: request.
1214
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1215
+ # a description of IAM and its features, see the [IAM documentation](https://
1216
+ # cloud.google.com/iam/docs/).
1217
+ class Policy
1218
+ include Google::Apis::Core::Hashable
1219
+
1220
+ # Associates a list of `members`, or principals, with a `role`. Optionally, may
1221
+ # specify a `condition` that determines how and when the `bindings` are applied.
1222
+ # Each of the `bindings` must contain at least one principal. The `bindings` in
1223
+ # a `Policy` can refer to up to 1,500 principals; up to 250 of these principals
1224
+ # can be Google groups. Each occurrence of a principal counts towards these
1225
+ # limits. For example, if the `bindings` grant 50 different roles to `user:alice@
1226
+ # example.com`, and not to any other principal, then you can add another 1,450
1227
+ # principals to the `bindings` in the `Policy`.
1228
+ # Corresponds to the JSON property `bindings`
1229
+ # @return [Array<Google::Apis::ApigeeregistryV1::Binding>]
1230
+ attr_accessor :bindings
1231
+
1232
+ # `etag` is used for optimistic concurrency control as a way to help prevent
1233
+ # simultaneous updates of a policy from overwriting each other. It is strongly
1234
+ # suggested that systems make use of the `etag` in the read-modify-write cycle
1235
+ # to perform policy updates in order to avoid race conditions: An `etag` is
1236
+ # returned in the response to `getIamPolicy`, and systems are expected to put
1237
+ # that etag in the request to `setIamPolicy` to ensure that their change will be
1238
+ # applied to the same version of the policy. **Important:** If you use IAM
1239
+ # Conditions, you must include the `etag` field whenever you call `setIamPolicy`.
1240
+ # If you omit this field, then IAM allows you to overwrite a version `3` policy
1241
+ # with a version `1` policy, and all of the conditions in the version `3` policy
1242
+ # are lost.
1243
+ # Corresponds to the JSON property `etag`
1244
+ # NOTE: Values are automatically base64 encoded/decoded in the client library.
1245
+ # @return [String]
1246
+ attr_accessor :etag
1247
+
1248
+ # Specifies the format of the policy. Valid values are `0`, `1`, and `3`.
1249
+ # Requests that specify an invalid value are rejected. Any operation that
1250
+ # affects conditional role bindings must specify version `3`. This requirement
1251
+ # applies to the following operations: * Getting a policy that includes a
1252
+ # conditional role binding * Adding a conditional role binding to a policy *
1253
+ # Changing a conditional role binding in a policy * Removing any role binding,
1254
+ # with or without a condition, from a policy that includes conditions **
1255
+ # Important:** If you use IAM Conditions, you must include the `etag` field
1256
+ # whenever you call `setIamPolicy`. If you omit this field, then IAM allows you
1257
+ # to overwrite a version `3` policy with a version `1` policy, and all of the
1258
+ # conditions in the version `3` policy are lost. If a policy does not include
1259
+ # any conditions, operations on that policy may specify any valid version or
1260
+ # leave the field unset. To learn which resources support conditions in their
1261
+ # IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/
1262
+ # conditions/resource-policies).
1263
+ # Corresponds to the JSON property `version`
1264
+ # @return [Fixnum]
1265
+ attr_accessor :version
1266
+
1267
+ def initialize(**args)
1268
+ update!(**args)
1269
+ end
1270
+
1271
+ # Update properties of this object
1272
+ def update!(**args)
1273
+ @bindings = args[:bindings] if args.key?(:bindings)
1274
+ @etag = args[:etag] if args.key?(:etag)
1275
+ @version = args[:version] if args.key?(:version)
1276
+ end
1277
+ end
1278
+
1279
+ # Request message for RollbackApiDeployment.
1280
+ class RollbackApiDeploymentRequest
1281
+ include Google::Apis::Core::Hashable
1282
+
1283
+ # Required. The revision ID to roll back to. It must be a revision of the same
1284
+ # deployment. Example: c7cfa2a8
1285
+ # Corresponds to the JSON property `revisionId`
1286
+ # @return [String]
1287
+ attr_accessor :revision_id
1288
+
1289
+ def initialize(**args)
1290
+ update!(**args)
1291
+ end
1292
+
1293
+ # Update properties of this object
1294
+ def update!(**args)
1295
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1296
+ end
1297
+ end
1298
+
1299
+ # Request message for RollbackApiSpec.
1300
+ class RollbackApiSpecRequest
1301
+ include Google::Apis::Core::Hashable
1302
+
1303
+ # Required. The revision ID to roll back to. It must be a revision of the same
1304
+ # spec. Example: c7cfa2a8
1305
+ # Corresponds to the JSON property `revisionId`
1306
+ # @return [String]
1307
+ attr_accessor :revision_id
1308
+
1309
+ def initialize(**args)
1310
+ update!(**args)
1311
+ end
1312
+
1313
+ # Update properties of this object
1314
+ def update!(**args)
1315
+ @revision_id = args[:revision_id] if args.key?(:revision_id)
1316
+ end
1317
+ end
1318
+
1319
+ # Request message for `SetIamPolicy` method.
1320
+ class SetIamPolicyRequest
1321
+ include Google::Apis::Core::Hashable
1322
+
1323
+ # An Identity and Access Management (IAM) policy, which specifies access
1324
+ # controls for Google Cloud resources. A `Policy` is a collection of `bindings`.
1325
+ # A `binding` binds one or more `members`, or principals, to a single `role`.
1326
+ # Principals can be user accounts, service accounts, Google groups, and domains (
1327
+ # such as G Suite). A `role` is a named list of permissions; each `role` can be
1328
+ # an IAM predefined role or a user-created custom role. For some types of Google
1329
+ # Cloud resources, a `binding` can also specify a `condition`, which is a
1330
+ # logical expression that allows access to a resource only if the expression
1331
+ # evaluates to `true`. A condition can add constraints based on attributes of
1332
+ # the request, the resource, or both. To learn which resources support
1333
+ # conditions in their IAM policies, see the [IAM documentation](https://cloud.
1334
+ # google.com/iam/help/conditions/resource-policies). **JSON example:** ` "
1335
+ # bindings": [ ` "role": "roles/resourcemanager.organizationAdmin", "members": [
1336
+ # "user:mike@example.com", "group:admins@example.com", "domain:google.com", "
1337
+ # serviceAccount:my-project-id@appspot.gserviceaccount.com" ] `, ` "role": "
1338
+ # roles/resourcemanager.organizationViewer", "members": [ "user:eve@example.com"
1339
+ # ], "condition": ` "title": "expirable access", "description": "Does not grant
1340
+ # access after Sep 2020", "expression": "request.time < timestamp('2020-10-01T00:
1341
+ # 00:00.000Z')", ` ` ], "etag": "BwWWja0YfJA=", "version": 3 ` **YAML example:**
1342
+ # bindings: - members: - user:mike@example.com - group:admins@example.com -
1343
+ # domain:google.com - serviceAccount:my-project-id@appspot.gserviceaccount.com
1344
+ # role: roles/resourcemanager.organizationAdmin - members: - user:eve@example.
1345
+ # com role: roles/resourcemanager.organizationViewer condition: title: expirable
1346
+ # access description: Does not grant access after Sep 2020 expression: request.
1347
+ # time < timestamp('2020-10-01T00:00:00.000Z') etag: BwWWja0YfJA= version: 3 For
1348
+ # a description of IAM and its features, see the [IAM documentation](https://
1349
+ # cloud.google.com/iam/docs/).
1350
+ # Corresponds to the JSON property `policy`
1351
+ # @return [Google::Apis::ApigeeregistryV1::Policy]
1352
+ attr_accessor :policy
1353
+
1354
+ def initialize(**args)
1355
+ update!(**args)
1356
+ end
1357
+
1358
+ # Update properties of this object
1359
+ def update!(**args)
1360
+ @policy = args[:policy] if args.key?(:policy)
1361
+ end
1362
+ end
1363
+
1364
+ # The `Status` type defines a logical error model that is suitable for different
1365
+ # programming environments, including REST APIs and RPC APIs. It is used by [
1366
+ # gRPC](https://github.com/grpc). Each `Status` message contains three pieces of
1367
+ # data: error code, error message, and error details. You can find out more
1368
+ # about this error model and how to work with it in the [API Design Guide](https:
1369
+ # //cloud.google.com/apis/design/errors).
1370
+ class Status
1371
+ include Google::Apis::Core::Hashable
1372
+
1373
+ # The status code, which should be an enum value of google.rpc.Code.
1374
+ # Corresponds to the JSON property `code`
1375
+ # @return [Fixnum]
1376
+ attr_accessor :code
1377
+
1378
+ # A list of messages that carry the error details. There is a common set of
1379
+ # message types for APIs to use.
1380
+ # Corresponds to the JSON property `details`
1381
+ # @return [Array<Hash<String,Object>>]
1382
+ attr_accessor :details
1383
+
1384
+ # A developer-facing error message, which should be in English. Any user-facing
1385
+ # error message should be localized and sent in the google.rpc.Status.details
1386
+ # field, or localized by the client.
1387
+ # Corresponds to the JSON property `message`
1388
+ # @return [String]
1389
+ attr_accessor :message
1390
+
1391
+ def initialize(**args)
1392
+ update!(**args)
1393
+ end
1394
+
1395
+ # Update properties of this object
1396
+ def update!(**args)
1397
+ @code = args[:code] if args.key?(:code)
1398
+ @details = args[:details] if args.key?(:details)
1399
+ @message = args[:message] if args.key?(:message)
1400
+ end
1401
+ end
1402
+
1403
+ # Request message for TagApiDeploymentRevision.
1404
+ class TagApiDeploymentRevisionRequest
1405
+ include Google::Apis::Core::Hashable
1406
+
1407
+ # Required. The tag to apply. The tag should be at most 40 characters, and match
1408
+ # `a-z`3,39``.
1409
+ # Corresponds to the JSON property `tag`
1410
+ # @return [String]
1411
+ attr_accessor :tag
1412
+
1413
+ def initialize(**args)
1414
+ update!(**args)
1415
+ end
1416
+
1417
+ # Update properties of this object
1418
+ def update!(**args)
1419
+ @tag = args[:tag] if args.key?(:tag)
1420
+ end
1421
+ end
1422
+
1423
+ # Request message for TagApiSpecRevision.
1424
+ class TagApiSpecRevisionRequest
1425
+ include Google::Apis::Core::Hashable
1426
+
1427
+ # Required. The tag to apply. The tag should be at most 40 characters, and match
1428
+ # `a-z`3,39``.
1429
+ # Corresponds to the JSON property `tag`
1430
+ # @return [String]
1431
+ attr_accessor :tag
1432
+
1433
+ def initialize(**args)
1434
+ update!(**args)
1435
+ end
1436
+
1437
+ # Update properties of this object
1438
+ def update!(**args)
1439
+ @tag = args[:tag] if args.key?(:tag)
1440
+ end
1441
+ end
1442
+
1443
+ # Request message for `TestIamPermissions` method.
1444
+ class TestIamPermissionsRequest
1445
+ include Google::Apis::Core::Hashable
1446
+
1447
+ # The set of permissions to check for the `resource`. Permissions with wildcards
1448
+ # (such as `*` or `storage.*`) are not allowed. For more information see [IAM
1449
+ # Overview](https://cloud.google.com/iam/docs/overview#permissions).
1450
+ # Corresponds to the JSON property `permissions`
1451
+ # @return [Array<String>]
1452
+ attr_accessor :permissions
1453
+
1454
+ def initialize(**args)
1455
+ update!(**args)
1456
+ end
1457
+
1458
+ # Update properties of this object
1459
+ def update!(**args)
1460
+ @permissions = args[:permissions] if args.key?(:permissions)
1461
+ end
1462
+ end
1463
+
1464
+ # Response message for `TestIamPermissions` method.
1465
+ class TestIamPermissionsResponse
1466
+ include Google::Apis::Core::Hashable
1467
+
1468
+ # A subset of `TestPermissionsRequest.permissions` that the caller is allowed.
1469
+ # Corresponds to the JSON property `permissions`
1470
+ # @return [Array<String>]
1471
+ attr_accessor :permissions
1472
+
1473
+ def initialize(**args)
1474
+ update!(**args)
1475
+ end
1476
+
1477
+ # Update properties of this object
1478
+ def update!(**args)
1479
+ @permissions = args[:permissions] if args.key?(:permissions)
1480
+ end
1481
+ end
1482
+ end
1483
+ end
1484
+ end