google-api-client 0.9.28 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (138) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -4
  3. data/CHANGELOG.md +10 -0
  4. data/api_names.yaml +36512 -36326
  5. data/generated/google/apis/adexchangebuyer2_v2beta1.rb +1 -1
  6. data/generated/google/apis/adexchangebuyer2_v2beta1/classes.rb +41 -41
  7. data/generated/google/apis/adexchangebuyer2_v2beta1/representations.rb +13 -13
  8. data/generated/google/apis/adexchangebuyer2_v2beta1/service.rb +110 -110
  9. data/generated/google/apis/adsense_v1_4.rb +1 -1
  10. data/generated/google/apis/adsensehost_v4_1.rb +1 -1
  11. data/generated/google/apis/analyticsreporting_v4.rb +3 -3
  12. data/generated/google/apis/analyticsreporting_v4/classes.rb +845 -845
  13. data/generated/google/apis/analyticsreporting_v4/representations.rb +184 -184
  14. data/generated/google/apis/androidenterprise_v1.rb +1 -1
  15. data/generated/google/apis/androidenterprise_v1/classes.rb +5 -5
  16. data/generated/google/apis/androidenterprise_v1/service.rb +3 -1
  17. data/generated/google/apis/appstate_v1.rb +1 -1
  18. data/generated/google/apis/calendar_v3.rb +1 -1
  19. data/generated/google/apis/classroom_v1.rb +22 -25
  20. data/generated/google/apis/classroom_v1/classes.rb +998 -907
  21. data/generated/google/apis/classroom_v1/representations.rb +240 -240
  22. data/generated/google/apis/classroom_v1/service.rb +1269 -1061
  23. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  24. data/generated/google/apis/cloudbuild_v1/classes.rb +322 -322
  25. data/generated/google/apis/cloudbuild_v1/representations.rb +88 -88
  26. data/generated/google/apis/cloudbuild_v1/service.rb +57 -57
  27. data/generated/google/apis/clouddebugger_v2.rb +4 -4
  28. data/generated/google/apis/clouddebugger_v2/classes.rb +311 -311
  29. data/generated/google/apis/clouddebugger_v2/representations.rb +92 -92
  30. data/generated/google/apis/clouddebugger_v2/service.rb +41 -41
  31. data/generated/google/apis/cloudkms_v1beta1.rb +1 -1
  32. data/generated/google/apis/cloudkms_v1beta1/classes.rb +611 -611
  33. data/generated/google/apis/cloudkms_v1beta1/representations.rb +124 -124
  34. data/generated/google/apis/cloudkms_v1beta1/service.rb +254 -248
  35. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  36. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +116 -116
  37. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +28 -28
  38. data/generated/google/apis/cloudresourcemanager_v1/service.rb +257 -257
  39. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +4 -4
  40. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +394 -394
  41. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +79 -79
  42. data/generated/google/apis/cloudresourcemanager_v1beta1/service.rb +269 -269
  43. data/generated/google/apis/cloudtrace_v1.rb +8 -8
  44. data/generated/google/apis/cloudtrace_v1/classes.rb +90 -84
  45. data/generated/google/apis/cloudtrace_v1/representations.rb +22 -22
  46. data/generated/google/apis/cloudtrace_v1/service.rb +40 -35
  47. data/generated/google/apis/compute_beta.rb +1 -1
  48. data/generated/google/apis/compute_beta/classes.rb +406 -31
  49. data/generated/google/apis/compute_beta/representations.rb +154 -0
  50. data/generated/google/apis/compute_beta/service.rb +262 -9
  51. data/generated/google/apis/compute_v1.rb +1 -1
  52. data/generated/google/apis/compute_v1/classes.rb +17 -20
  53. data/generated/google/apis/content_v2.rb +1 -1
  54. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  55. data/generated/google/apis/dataflow_v1b3/classes.rb +3226 -2847
  56. data/generated/google/apis/dataflow_v1b3/representations.rb +825 -677
  57. data/generated/google/apis/dataflow_v1b3/service.rb +175 -175
  58. data/generated/google/apis/dataproc_v1.rb +2 -2
  59. data/generated/google/apis/dataproc_v1/classes.rb +1213 -1136
  60. data/generated/google/apis/dataproc_v1/representations.rb +262 -244
  61. data/generated/google/apis/dataproc_v1/service.rb +298 -243
  62. data/generated/google/apis/datastore_v1.rb +4 -4
  63. data/generated/google/apis/datastore_v1/classes.rb +728 -728
  64. data/generated/google/apis/datastore_v1/representations.rb +167 -167
  65. data/generated/google/apis/datastore_v1/service.rb +68 -68
  66. data/generated/google/apis/doubleclicksearch_v2.rb +1 -1
  67. data/generated/google/apis/drive_v2.rb +1 -1
  68. data/generated/google/apis/drive_v3.rb +1 -1
  69. data/generated/google/apis/games_configuration_v1configuration.rb +1 -1
  70. data/generated/google/apis/games_management_v1management.rb +1 -1
  71. data/generated/google/apis/games_v1.rb +1 -1
  72. data/generated/google/apis/genomics_v1.rb +7 -7
  73. data/generated/google/apis/genomics_v1/classes.rb +932 -932
  74. data/generated/google/apis/genomics_v1/representations.rb +205 -205
  75. data/generated/google/apis/genomics_v1/service.rb +1228 -1228
  76. data/generated/google/apis/gmail_v1.rb +1 -1
  77. data/generated/google/apis/iam_v1/classes.rb +440 -440
  78. data/generated/google/apis/iam_v1/representations.rb +94 -94
  79. data/generated/google/apis/iam_v1/service.rb +60 -60
  80. data/generated/google/apis/identitytoolkit_v3.rb +1 -1
  81. data/generated/google/apis/identitytoolkit_v3/classes.rb +21 -1
  82. data/generated/google/apis/identitytoolkit_v3/representations.rb +3 -0
  83. data/generated/google/apis/kgsearch_v1/classes.rb +6 -6
  84. data/generated/google/apis/kgsearch_v1/representations.rb +1 -1
  85. data/generated/google/apis/kgsearch_v1/service.rb +21 -21
  86. data/generated/google/apis/language_v1beta1.rb +1 -1
  87. data/generated/google/apis/language_v1beta1/classes.rb +232 -232
  88. data/generated/google/apis/language_v1beta1/representations.rb +75 -75
  89. data/generated/google/apis/logging_v2beta1.rb +1 -1
  90. data/generated/google/apis/logging_v2beta1/classes.rb +345 -337
  91. data/generated/google/apis/logging_v2beta1/representations.rb +55 -55
  92. data/generated/google/apis/logging_v2beta1/service.rb +331 -306
  93. data/generated/google/apis/monitoring_v3.rb +1 -1
  94. data/generated/google/apis/monitoring_v3/classes.rb +253 -253
  95. data/generated/google/apis/monitoring_v3/representations.rb +58 -58
  96. data/generated/google/apis/monitoring_v3/service.rb +135 -135
  97. data/generated/google/apis/people_v1.rb +15 -16
  98. data/generated/google/apis/people_v1/classes.rb +985 -855
  99. data/generated/google/apis/people_v1/representations.rb +227 -220
  100. data/generated/google/apis/people_v1/service.rb +58 -52
  101. data/generated/google/apis/plus_domains_v1.rb +1 -1
  102. data/generated/google/apis/plus_v1.rb +1 -1
  103. data/generated/google/apis/pubsub_v1.rb +1 -1
  104. data/generated/google/apis/pubsub_v1/classes.rb +257 -257
  105. data/generated/google/apis/pubsub_v1/representations.rb +83 -83
  106. data/generated/google/apis/pubsub_v1/service.rb +390 -390
  107. data/generated/google/apis/script_v1.rb +17 -17
  108. data/generated/google/apis/script_v1/classes.rb +149 -141
  109. data/generated/google/apis/script_v1/representations.rb +26 -27
  110. data/generated/google/apis/script_v1/service.rb +9 -8
  111. data/generated/google/apis/sheets_v4.rb +1 -1
  112. data/generated/google/apis/sheets_v4/classes.rb +4223 -4188
  113. data/generated/google/apis/sheets_v4/representations.rb +850 -834
  114. data/generated/google/apis/sheets_v4/service.rb +192 -192
  115. data/generated/google/apis/slides_v1.rb +1 -1
  116. data/generated/google/apis/slides_v1/classes.rb +927 -800
  117. data/generated/google/apis/slides_v1/representations.rb +253 -211
  118. data/generated/google/apis/speech_v1beta1.rb +1 -1
  119. data/generated/google/apis/speech_v1beta1/classes.rb +94 -107
  120. data/generated/google/apis/speech_v1beta1/representations.rb +24 -36
  121. data/generated/google/apis/speech_v1beta1/service.rb +51 -54
  122. data/generated/google/apis/storage_v1.rb +1 -1
  123. data/generated/google/apis/vision_v1.rb +1 -1
  124. data/generated/google/apis/vision_v1/classes.rb +888 -885
  125. data/generated/google/apis/vision_v1/representations.rb +139 -139
  126. data/generated/google/apis/youtube_analytics_v1.rb +1 -1
  127. data/generated/google/apis/youtube_analytics_v1/service.rb +5 -1
  128. data/generated/google/apis/youtube_partner_v1.rb +1 -1
  129. data/generated/google/apis/youtubereporting_v1.rb +1 -1
  130. data/generated/google/apis/youtubereporting_v1/classes.rb +80 -80
  131. data/generated/google/apis/youtubereporting_v1/representations.rb +23 -23
  132. data/generated/google/apis/youtubereporting_v1/service.rb +51 -51
  133. data/google-api-client.gemspec +2 -2
  134. data/lib/google/apis/core/api_command.rb +1 -1
  135. data/lib/google/apis/core/json_representation.rb +2 -2
  136. data/lib/google/apis/version.rb +1 -1
  137. data/samples/cli/lib/samples/you_tube.rb +4 -1
  138. metadata +36 -30
@@ -25,7 +25,7 @@ module Google
25
25
  # @see https://developers.google.com/gmail/api/
26
26
  module GmailV1
27
27
  VERSION = 'V1'
28
- REVISION = '20170131'
28
+ REVISION = '20170206'
29
29
 
30
30
  # View and manage your mail
31
31
  AUTH_SCOPE = 'https://mail.google.com/'
@@ -22,61 +22,62 @@ module Google
22
22
  module Apis
23
23
  module IamV1
24
24
 
25
- # Represents a service account key.
26
- # A service account has two sets of key-pairs: user-managed, and
27
- # system-managed.
28
- # User-managed key-pairs can be created and deleted by users. Users are
29
- # responsible for rotating these keys periodically to ensure security of
30
- # their service accounts. Users retain the private key of these key-pairs,
31
- # and Google retains ONLY the public key.
32
- # System-managed key-pairs are managed automatically by Google, and rotated
33
- # daily without user intervention. The private key never leaves Google's
34
- # servers to maximize security.
35
- # Public keys for all service accounts are also published at the OAuth2
36
- # Service Account API.
37
- class ServiceAccountKey
25
+ # The service account create request.
26
+ class CreateServiceAccountRequest
38
27
  include Google::Apis::Core::Hashable
39
28
 
40
- # The key can be used after this timestamp.
41
- # Corresponds to the JSON property `validAfterTime`
42
- # @return [String]
43
- attr_accessor :valid_after_time
29
+ # A service account in the Identity and Access Management API.
30
+ # To create a service account, specify the `project_id` and the `account_id`
31
+ # for the account. The `account_id` is unique within the project, and is used
32
+ # to generate the service account email address and a stable
33
+ # `unique_id`.
34
+ # If the account already exists, the account's resource name is returned
35
+ # in util::Status's ResourceInfo.resource_name in the format of
36
+ # projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL`. The caller can
37
+ # use the name in other methods to access the account.
38
+ # All other methods can identify the service account using the format
39
+ # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
40
+ # Using `-` as a wildcard for the project will infer the project from
41
+ # the account. The `account` value can be the `email` address or the
42
+ # `unique_id` of the service account.
43
+ # Corresponds to the JSON property `serviceAccount`
44
+ # @return [Google::Apis::IamV1::ServiceAccount]
45
+ attr_accessor :service_account
44
46
 
45
- # The output format for the private key.
46
- # Only provided in `CreateServiceAccountKey` responses, not
47
- # in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
48
- # Google never exposes system-managed private keys, and never retains
49
- # user-managed private keys.
50
- # Corresponds to the JSON property `privateKeyType`
47
+ # Required. The account id that is used to generate the service account
48
+ # email address and a stable unique id. It is unique within a project,
49
+ # must be 6-30 characters long, and match the regular expression
50
+ # `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
51
+ # Corresponds to the JSON property `accountId`
51
52
  # @return [String]
52
- attr_accessor :private_key_type
53
+ attr_accessor :account_id
53
54
 
54
- # The private key data. Only provided in `CreateServiceAccountKey`
55
- # responses.
56
- # Corresponds to the JSON property `privateKeyData`
57
- # @return [String]
58
- attr_accessor :private_key_data
55
+ def initialize(**args)
56
+ update!(**args)
57
+ end
59
58
 
60
- # The public key data. Only provided in `GetServiceAccountKey` responses.
61
- # Corresponds to the JSON property `publicKeyData`
62
- # @return [String]
63
- attr_accessor :public_key_data
59
+ # Update properties of this object
60
+ def update!(**args)
61
+ @service_account = args[:service_account] if args.key?(:service_account)
62
+ @account_id = args[:account_id] if args.key?(:account_id)
63
+ end
64
+ end
64
65
 
65
- # The resource name of the service account key in the following format
66
- # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL`/keys/`key``.
67
- # Corresponds to the JSON property `name`
68
- # @return [String]
69
- attr_accessor :name
66
+ # The service account list response.
67
+ class ListServiceAccountsResponse
68
+ include Google::Apis::Core::Hashable
70
69
 
71
- # The key can be used before this timestamp.
72
- # Corresponds to the JSON property `validBeforeTime`
73
- # @return [String]
74
- attr_accessor :valid_before_time
70
+ # The list of matching service accounts.
71
+ # Corresponds to the JSON property `accounts`
72
+ # @return [Array<Google::Apis::IamV1::ServiceAccount>]
73
+ attr_accessor :accounts
75
74
 
76
- # Specifies the algorithm (and possibly key size) for the key.
77
- # Corresponds to the JSON property `keyAlgorithm`
75
+ # To retrieve the next page of results, set
76
+ # ListServiceAccountsRequest.page_token
77
+ # to this value.
78
+ # Corresponds to the JSON property `nextPageToken`
78
79
  # @return [String]
79
- attr_accessor :key_algorithm
80
+ attr_accessor :next_page_token
80
81
 
81
82
  def initialize(**args)
82
83
  update!(**args)
@@ -84,32 +85,19 @@ module Google
84
85
 
85
86
  # Update properties of this object
86
87
  def update!(**args)
87
- @valid_after_time = args[:valid_after_time] if args.key?(:valid_after_time)
88
- @private_key_type = args[:private_key_type] if args.key?(:private_key_type)
89
- @private_key_data = args[:private_key_data] if args.key?(:private_key_data)
90
- @public_key_data = args[:public_key_data] if args.key?(:public_key_data)
91
- @name = args[:name] if args.key?(:name)
92
- @valid_before_time = args[:valid_before_time] if args.key?(:valid_before_time)
93
- @key_algorithm = args[:key_algorithm] if args.key?(:key_algorithm)
88
+ @accounts = args[:accounts] if args.key?(:accounts)
89
+ @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
94
90
  end
95
91
  end
96
92
 
97
- # The service account key create request.
98
- class CreateServiceAccountKeyRequest
93
+ # The grantable role query response.
94
+ class QueryGrantableRolesResponse
99
95
  include Google::Apis::Core::Hashable
100
96
 
101
- # The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the
102
- # default output format.
103
- # Corresponds to the JSON property `privateKeyType`
104
- # @return [String]
105
- attr_accessor :private_key_type
106
-
107
- # Which type of key and algorithm to use for the key.
108
- # The default is currently a 4K RSA key. However this may change in the
109
- # future.
110
- # Corresponds to the JSON property `keyAlgorithm`
111
- # @return [String]
112
- attr_accessor :key_algorithm
97
+ # The list of matching roles.
98
+ # Corresponds to the JSON property `roles`
99
+ # @return [Array<Google::Apis::IamV1::Role>]
100
+ attr_accessor :roles
113
101
 
114
102
  def initialize(**args)
115
103
  update!(**args)
@@ -117,24 +105,18 @@ module Google
117
105
 
118
106
  # Update properties of this object
119
107
  def update!(**args)
120
- @private_key_type = args[:private_key_type] if args.key?(:private_key_type)
121
- @key_algorithm = args[:key_algorithm] if args.key?(:key_algorithm)
108
+ @roles = args[:roles] if args.key?(:roles)
122
109
  end
123
110
  end
124
111
 
125
- # The service account sign JWT response.
126
- class SignJwtResponse
112
+ # The service account sign blob request.
113
+ class SignBlobRequest
127
114
  include Google::Apis::Core::Hashable
128
115
 
129
- # The id of the key used to sign the JWT.
130
- # Corresponds to the JSON property `keyId`
131
- # @return [String]
132
- attr_accessor :key_id
133
-
134
- # The signed JWT.
135
- # Corresponds to the JSON property `signedJwt`
116
+ # The bytes to sign.
117
+ # Corresponds to the JSON property `bytesToSign`
136
118
  # @return [String]
137
- attr_accessor :signed_jwt
119
+ attr_accessor :bytes_to_sign
138
120
 
139
121
  def initialize(**args)
140
122
  update!(**args)
@@ -142,24 +124,33 @@ module Google
142
124
 
143
125
  # Update properties of this object
144
126
  def update!(**args)
145
- @key_id = args[:key_id] if args.key?(:key_id)
146
- @signed_jwt = args[:signed_jwt] if args.key?(:signed_jwt)
127
+ @bytes_to_sign = args[:bytes_to_sign] if args.key?(:bytes_to_sign)
147
128
  end
148
129
  end
149
130
 
150
- # The service account sign blob response.
151
- class SignBlobResponse
131
+ # A role in the Identity and Access Management API.
132
+ class Role
152
133
  include Google::Apis::Core::Hashable
153
134
 
154
- # The signed blob.
155
- # Corresponds to the JSON property `signature`
135
+ # Optional. A human-readable title for the role. Typically this
136
+ # is limited to 100 UTF-8 bytes.
137
+ # Corresponds to the JSON property `title`
156
138
  # @return [String]
157
- attr_accessor :signature
139
+ attr_accessor :title
158
140
 
159
- # The id of the key used to sign the blob.
160
- # Corresponds to the JSON property `keyId`
141
+ # The name of the role.
142
+ # When Role is used in CreateRole, the role name must not be set.
143
+ # When Role is used in output and other input such as UpdateRole, the role
144
+ # name is the complete path, e.g., roles/logging.viewer for curated roles
145
+ # and organizations/`ORGANIZATION_ID`/roles/logging.viewer for custom roles.
146
+ # Corresponds to the JSON property `name`
161
147
  # @return [String]
162
- attr_accessor :key_id
148
+ attr_accessor :name
149
+
150
+ # Optional. A human-readable description for the role.
151
+ # Corresponds to the JSON property `description`
152
+ # @return [String]
153
+ attr_accessor :description
163
154
 
164
155
  def initialize(**args)
165
156
  update!(**args)
@@ -167,22 +158,45 @@ module Google
167
158
 
168
159
  # Update properties of this object
169
160
  def update!(**args)
170
- @signature = args[:signature] if args.key?(:signature)
171
- @key_id = args[:key_id] if args.key?(:key_id)
161
+ @title = args[:title] if args.key?(:title)
162
+ @name = args[:name] if args.key?(:name)
163
+ @description = args[:description] if args.key?(:description)
172
164
  end
173
165
  end
174
166
 
175
- # Request message for `TestIamPermissions` method.
176
- class TestIamPermissionsRequest
167
+ # Request message for `SetIamPolicy` method.
168
+ class SetIamPolicyRequest
177
169
  include Google::Apis::Core::Hashable
178
170
 
179
- # The set of permissions to check for the `resource`. Permissions with
180
- # wildcards (such as '*' or 'storage.*') are not allowed. For more
181
- # information see
182
- # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
183
- # Corresponds to the JSON property `permissions`
184
- # @return [Array<String>]
185
- attr_accessor :permissions
171
+ # Defines an Identity and Access Management (IAM) policy. It is used to
172
+ # specify access control policies for Cloud Platform resources.
173
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
174
+ # `members` to a `role`, where the members can be user accounts, Google groups,
175
+ # Google domains, and service accounts. A `role` is a named list of permissions
176
+ # defined by IAM.
177
+ # **Example**
178
+ # `
179
+ # "bindings": [
180
+ # `
181
+ # "role": "roles/owner",
182
+ # "members": [
183
+ # "user:mike@example.com",
184
+ # "group:admins@example.com",
185
+ # "domain:google.com",
186
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
187
+ # ]
188
+ # `,
189
+ # `
190
+ # "role": "roles/viewer",
191
+ # "members": ["user:sean@example.com"]
192
+ # `
193
+ # ]
194
+ # `
195
+ # For a description of IAM and its features, see the
196
+ # [IAM developer's guide](https://cloud.google.com/iam).
197
+ # Corresponds to the JSON property `policy`
198
+ # @return [Google::Apis::IamV1::Policy]
199
+ attr_accessor :policy
186
200
 
187
201
  def initialize(**args)
188
202
  update!(**args)
@@ -190,63 +204,38 @@ module Google
190
204
 
191
205
  # Update properties of this object
192
206
  def update!(**args)
193
- @permissions = args[:permissions] if args.key?(:permissions)
207
+ @policy = args[:policy] if args.key?(:policy)
194
208
  end
195
209
  end
196
210
 
197
- # Defines an Identity and Access Management (IAM) policy. It is used to
198
- # specify access control policies for Cloud Platform resources.
199
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
200
- # `members` to a `role`, where the members can be user accounts, Google groups,
201
- # Google domains, and service accounts. A `role` is a named list of permissions
202
- # defined by IAM.
203
- # **Example**
204
- # `
205
- # "bindings": [
206
- # `
207
- # "role": "roles/owner",
208
- # "members": [
209
- # "user:mike@example.com",
210
- # "group:admins@example.com",
211
- # "domain:google.com",
212
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
213
- # ]
214
- # `,
215
- # `
216
- # "role": "roles/viewer",
217
- # "members": ["user:sean@example.com"]
218
- # `
219
- # ]
220
- # `
221
- # For a description of IAM and its features, see the
222
- # [IAM developer's guide](https://cloud.google.com/iam).
223
- class Policy
211
+ # Associates `members` with a `role`.
212
+ class Binding
224
213
  include Google::Apis::Core::Hashable
225
214
 
226
- # `etag` is used for optimistic concurrency control as a way to help
227
- # prevent simultaneous updates of a policy from overwriting each other.
228
- # It is strongly suggested that systems make use of the `etag` in the
229
- # read-modify-write cycle to perform policy updates in order to avoid race
230
- # conditions: An `etag` is returned in the response to `getIamPolicy`, and
231
- # systems are expected to put that etag in the request to `setIamPolicy` to
232
- # ensure that their change will be applied to the same version of the policy.
233
- # If no `etag` is provided in the call to `setIamPolicy`, then the existing
234
- # policy is overwritten blindly.
235
- # Corresponds to the JSON property `etag`
236
- # @return [String]
237
- attr_accessor :etag
238
-
239
- # Version of the `Policy`. The default version is 0.
240
- # Corresponds to the JSON property `version`
241
- # @return [Fixnum]
242
- attr_accessor :version
215
+ # Specifies the identities requesting access for a Cloud Platform resource.
216
+ # `members` can have the following values:
217
+ # * `allUsers`: A special identifier that represents anyone who is
218
+ # on the internet; with or without a Google account.
219
+ # * `allAuthenticatedUsers`: A special identifier that represents anyone
220
+ # who is authenticated with a Google account or a service account.
221
+ # * `user:`emailid``: An email address that represents a specific Google
222
+ # account. For example, `alice@gmail.com` or `joe@example.com`.
223
+ # * `serviceAccount:`emailid``: An email address that represents a service
224
+ # account. For example, `my-other-app@appspot.gserviceaccount.com`.
225
+ # * `group:`emailid``: An email address that represents a Google group.
226
+ # For example, `admins@example.com`.
227
+ # * `domain:`domain``: A Google Apps domain name that represents all the
228
+ # users of that domain. For example, `google.com` or `example.com`.
229
+ # Corresponds to the JSON property `members`
230
+ # @return [Array<String>]
231
+ attr_accessor :members
243
232
 
244
- # Associates a list of `members` to a `role`.
245
- # Multiple `bindings` must not be specified for the same `role`.
246
- # `bindings` with no members will result in an error.
247
- # Corresponds to the JSON property `bindings`
248
- # @return [Array<Google::Apis::IamV1::Binding>]
249
- attr_accessor :bindings
233
+ # Role that is assigned to `members`.
234
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
235
+ # Required
236
+ # Corresponds to the JSON property `role`
237
+ # @return [String]
238
+ attr_accessor :role
250
239
 
251
240
  def initialize(**args)
252
241
  update!(**args)
@@ -254,20 +243,22 @@ module Google
254
243
 
255
244
  # Update properties of this object
256
245
  def update!(**args)
257
- @etag = args[:etag] if args.key?(:etag)
258
- @version = args[:version] if args.key?(:version)
259
- @bindings = args[:bindings] if args.key?(:bindings)
246
+ @members = args[:members] if args.key?(:members)
247
+ @role = args[:role] if args.key?(:role)
260
248
  end
261
249
  end
262
250
 
263
- # The service account sign JWT request.
264
- class SignJwtRequest
251
+ # The grantable role query request.
252
+ class QueryGrantableRolesRequest
265
253
  include Google::Apis::Core::Hashable
266
254
 
267
- # The JWT payload to sign, a JSON JWT Claim set.
268
- # Corresponds to the JSON property `payload`
255
+ # Required. The full resource name to query from the list of grantable roles.
256
+ # The name follows the Google Cloud Platform resource format.
257
+ # For example, a Cloud Platform project with id `my-project` will be named
258
+ # `//cloudresourcemanager.googleapis.com/projects/my-project`.
259
+ # Corresponds to the JSON property `fullResourceName`
269
260
  # @return [String]
270
- attr_accessor :payload
261
+ attr_accessor :full_resource_name
271
262
 
272
263
  def initialize(**args)
273
264
  update!(**args)
@@ -275,55 +266,89 @@ module Google
275
266
 
276
267
  # Update properties of this object
277
268
  def update!(**args)
278
- @payload = args[:payload] if args.key?(:payload)
269
+ @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
279
270
  end
280
271
  end
281
272
 
282
- # Audit log information specific to Cloud IAM. This message is serialized
283
- # as an `Any` type in the `ServiceData` message of an
284
- # `AuditLog` message.
285
- class AuditData
273
+ # A generic empty message that you can re-use to avoid defining duplicated
274
+ # empty messages in your APIs. A typical example is to use it as the request
275
+ # or the response type of an API method. For instance:
276
+ # service Foo `
277
+ # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
278
+ # `
279
+ # The JSON representation for `Empty` is empty JSON object ````.
280
+ class Empty
286
281
  include Google::Apis::Core::Hashable
287
282
 
288
- # The difference delta between two policies.
289
- # Corresponds to the JSON property `policyDelta`
290
- # @return [Google::Apis::IamV1::PolicyDelta]
291
- attr_accessor :policy_delta
292
-
293
283
  def initialize(**args)
294
284
  update!(**args)
295
285
  end
296
286
 
297
287
  # Update properties of this object
298
288
  def update!(**args)
299
- @policy_delta = args[:policy_delta] if args.key?(:policy_delta)
300
289
  end
301
290
  end
302
291
 
303
- # One delta entry for Binding. Each individual change (only one member in each
304
- # entry) to a binding will be a separate entry.
305
- class BindingDelta
292
+ # A service account in the Identity and Access Management API.
293
+ # To create a service account, specify the `project_id` and the `account_id`
294
+ # for the account. The `account_id` is unique within the project, and is used
295
+ # to generate the service account email address and a stable
296
+ # `unique_id`.
297
+ # If the account already exists, the account's resource name is returned
298
+ # in util::Status's ResourceInfo.resource_name in the format of
299
+ # projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL`. The caller can
300
+ # use the name in other methods to access the account.
301
+ # All other methods can identify the service account using the format
302
+ # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
303
+ # Using `-` as a wildcard for the project will infer the project from
304
+ # the account. The `account` value can be the `email` address or the
305
+ # `unique_id` of the service account.
306
+ class ServiceAccount
306
307
  include Google::Apis::Core::Hashable
307
308
 
308
- # The action that was performed on a Binding.
309
- # Required
310
- # Corresponds to the JSON property `action`
309
+ # @OutputOnly The unique and stable id of the service account.
310
+ # Corresponds to the JSON property `uniqueId`
311
+ # @return [String]
312
+ attr_accessor :unique_id
313
+
314
+ # @OutputOnly. The OAuth2 client id for the service account.
315
+ # This is used in conjunction with the OAuth2 clientconfig API to make
316
+ # three legged OAuth2 (3LO) flows to access the data of Google users.
317
+ # Corresponds to the JSON property `oauth2ClientId`
318
+ # @return [String]
319
+ attr_accessor :oauth2_client_id
320
+
321
+ # Optional. A user-specified description of the service account. Must be
322
+ # fewer than 100 UTF-8 bytes.
323
+ # Corresponds to the JSON property `displayName`
324
+ # @return [String]
325
+ attr_accessor :display_name
326
+
327
+ # Used to perform a consistent read-modify-write.
328
+ # Corresponds to the JSON property `etag`
329
+ # @return [String]
330
+ attr_accessor :etag
331
+
332
+ # The resource name of the service account in the following format:
333
+ # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
334
+ # Requests using `-` as a wildcard for the project will infer the project
335
+ # from the `account` and the `account` value can be the `email` address or
336
+ # the `unique_id` of the service account.
337
+ # In responses the resource name will always be in the format
338
+ # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
339
+ # Corresponds to the JSON property `name`
311
340
  # @return [String]
312
- attr_accessor :action
341
+ attr_accessor :name
313
342
 
314
- # A single identity requesting access for a Cloud Platform resource.
315
- # Follows the same format of Binding.members.
316
- # Required
317
- # Corresponds to the JSON property `member`
343
+ # @OutputOnly The email address of the service account.
344
+ # Corresponds to the JSON property `email`
318
345
  # @return [String]
319
- attr_accessor :member
346
+ attr_accessor :email
320
347
 
321
- # Role that is assigned to `members`.
322
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
323
- # Required
324
- # Corresponds to the JSON property `role`
348
+ # @OutputOnly The id of the project that owns the service account.
349
+ # Corresponds to the JSON property `projectId`
325
350
  # @return [String]
326
- attr_accessor :role
351
+ attr_accessor :project_id
327
352
 
328
353
  def initialize(**args)
329
354
  update!(**args)
@@ -331,20 +356,24 @@ module Google
331
356
 
332
357
  # Update properties of this object
333
358
  def update!(**args)
334
- @action = args[:action] if args.key?(:action)
335
- @member = args[:member] if args.key?(:member)
336
- @role = args[:role] if args.key?(:role)
359
+ @unique_id = args[:unique_id] if args.key?(:unique_id)
360
+ @oauth2_client_id = args[:oauth2_client_id] if args.key?(:oauth2_client_id)
361
+ @display_name = args[:display_name] if args.key?(:display_name)
362
+ @etag = args[:etag] if args.key?(:etag)
363
+ @name = args[:name] if args.key?(:name)
364
+ @email = args[:email] if args.key?(:email)
365
+ @project_id = args[:project_id] if args.key?(:project_id)
337
366
  end
338
367
  end
339
368
 
340
- # The difference delta between two policies.
341
- class PolicyDelta
369
+ # The service account keys list response.
370
+ class ListServiceAccountKeysResponse
342
371
  include Google::Apis::Core::Hashable
343
372
 
344
- # The delta for Bindings between two policies.
345
- # Corresponds to the JSON property `bindingDeltas`
346
- # @return [Array<Google::Apis::IamV1::BindingDelta>]
347
- attr_accessor :binding_deltas
373
+ # The public keys for the service account.
374
+ # Corresponds to the JSON property `keys`
375
+ # @return [Array<Google::Apis::IamV1::ServiceAccountKey>]
376
+ attr_accessor :keys
348
377
 
349
378
  def initialize(**args)
350
379
  update!(**args)
@@ -352,25 +381,19 @@ module Google
352
381
 
353
382
  # Update properties of this object
354
383
  def update!(**args)
355
- @binding_deltas = args[:binding_deltas] if args.key?(:binding_deltas)
384
+ @keys = args[:keys] if args.key?(:keys)
356
385
  end
357
386
  end
358
387
 
359
- # The service account list response.
360
- class ListServiceAccountsResponse
388
+ # Response message for `TestIamPermissions` method.
389
+ class TestIamPermissionsResponse
361
390
  include Google::Apis::Core::Hashable
362
391
 
363
- # To retrieve the next page of results, set
364
- # ListServiceAccountsRequest.page_token
365
- # to this value.
366
- # Corresponds to the JSON property `nextPageToken`
367
- # @return [String]
368
- attr_accessor :next_page_token
369
-
370
- # The list of matching service accounts.
371
- # Corresponds to the JSON property `accounts`
372
- # @return [Array<Google::Apis::IamV1::ServiceAccount>]
373
- attr_accessor :accounts
392
+ # A subset of `TestPermissionsRequest.permissions` that the caller is
393
+ # allowed.
394
+ # Corresponds to the JSON property `permissions`
395
+ # @return [Array<String>]
396
+ attr_accessor :permissions
374
397
 
375
398
  def initialize(**args)
376
399
  update!(**args)
@@ -378,79 +401,65 @@ module Google
378
401
 
379
402
  # Update properties of this object
380
403
  def update!(**args)
381
- @next_page_token = args[:next_page_token] if args.key?(:next_page_token)
382
- @accounts = args[:accounts] if args.key?(:accounts)
404
+ @permissions = args[:permissions] if args.key?(:permissions)
383
405
  end
384
406
  end
385
407
 
386
- # The service account create request.
387
- class CreateServiceAccountRequest
408
+ # Represents a service account key.
409
+ # A service account has two sets of key-pairs: user-managed, and
410
+ # system-managed.
411
+ # User-managed key-pairs can be created and deleted by users. Users are
412
+ # responsible for rotating these keys periodically to ensure security of
413
+ # their service accounts. Users retain the private key of these key-pairs,
414
+ # and Google retains ONLY the public key.
415
+ # System-managed key-pairs are managed automatically by Google, and rotated
416
+ # daily without user intervention. The private key never leaves Google's
417
+ # servers to maximize security.
418
+ # Public keys for all service accounts are also published at the OAuth2
419
+ # Service Account API.
420
+ class ServiceAccountKey
388
421
  include Google::Apis::Core::Hashable
389
422
 
390
- # A service account in the Identity and Access Management API.
391
- # To create a service account, specify the `project_id` and the `account_id`
392
- # for the account. The `account_id` is unique within the project, and is used
393
- # to generate the service account email address and a stable
394
- # `unique_id`.
395
- # If the account already exists, the account's resource name is returned
396
- # in util::Status's ResourceInfo.resource_name in the format of
397
- # projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL`. The caller can
398
- # use the name in other methods to access the account.
399
- # All other methods can identify the service account using the format
400
- # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
401
- # Using `-` as a wildcard for the project will infer the project from
402
- # the account. The `account` value can be the `email` address or the
403
- # `unique_id` of the service account.
404
- # Corresponds to the JSON property `serviceAccount`
405
- # @return [Google::Apis::IamV1::ServiceAccount]
406
- attr_accessor :service_account
407
-
408
- # Required. The account id that is used to generate the service account
409
- # email address and a stable unique id. It is unique within a project,
410
- # must be 6-30 characters long, and match the regular expression
411
- # `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.
412
- # Corresponds to the JSON property `accountId`
423
+ # The resource name of the service account key in the following format
424
+ # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL`/keys/`key``.
425
+ # Corresponds to the JSON property `name`
413
426
  # @return [String]
414
- attr_accessor :account_id
415
-
416
- def initialize(**args)
417
- update!(**args)
418
- end
419
-
420
- # Update properties of this object
421
- def update!(**args)
422
- @service_account = args[:service_account] if args.key?(:service_account)
423
- @account_id = args[:account_id] if args.key?(:account_id)
424
- end
425
- end
427
+ attr_accessor :name
426
428
 
427
- # The grantable role query response.
428
- class QueryGrantableRolesResponse
429
- include Google::Apis::Core::Hashable
429
+ # The key can be used before this timestamp.
430
+ # Corresponds to the JSON property `validBeforeTime`
431
+ # @return [String]
432
+ attr_accessor :valid_before_time
430
433
 
431
- # The list of matching roles.
432
- # Corresponds to the JSON property `roles`
433
- # @return [Array<Google::Apis::IamV1::Role>]
434
- attr_accessor :roles
434
+ # Specifies the algorithm (and possibly key size) for the key.
435
+ # Corresponds to the JSON property `keyAlgorithm`
436
+ # @return [String]
437
+ attr_accessor :key_algorithm
435
438
 
436
- def initialize(**args)
437
- update!(**args)
438
- end
439
+ # The key can be used after this timestamp.
440
+ # Corresponds to the JSON property `validAfterTime`
441
+ # @return [String]
442
+ attr_accessor :valid_after_time
439
443
 
440
- # Update properties of this object
441
- def update!(**args)
442
- @roles = args[:roles] if args.key?(:roles)
443
- end
444
- end
444
+ # The output format for the private key.
445
+ # Only provided in `CreateServiceAccountKey` responses, not
446
+ # in `GetServiceAccountKey` or `ListServiceAccountKey` responses.
447
+ # Google never exposes system-managed private keys, and never retains
448
+ # user-managed private keys.
449
+ # Corresponds to the JSON property `privateKeyType`
450
+ # @return [String]
451
+ attr_accessor :private_key_type
445
452
 
446
- # The service account sign blob request.
447
- class SignBlobRequest
448
- include Google::Apis::Core::Hashable
453
+ # The private key data. Only provided in `CreateServiceAccountKey`
454
+ # responses.
455
+ # Corresponds to the JSON property `privateKeyData`
456
+ # @return [String]
457
+ attr_accessor :private_key_data
449
458
 
450
- # The bytes to sign.
451
- # Corresponds to the JSON property `bytesToSign`
459
+ # The public key data. Only provided in `GetServiceAccountKey` responses.
460
+ # Corresponds to the JSON property `publicKeyData`
452
461
  # @return [String]
453
- attr_accessor :bytes_to_sign
462
+ attr_accessor :public_key_data
454
463
 
455
464
  def initialize(**args)
456
465
  update!(**args)
@@ -458,33 +467,32 @@ module Google
458
467
 
459
468
  # Update properties of this object
460
469
  def update!(**args)
461
- @bytes_to_sign = args[:bytes_to_sign] if args.key?(:bytes_to_sign)
470
+ @name = args[:name] if args.key?(:name)
471
+ @valid_before_time = args[:valid_before_time] if args.key?(:valid_before_time)
472
+ @key_algorithm = args[:key_algorithm] if args.key?(:key_algorithm)
473
+ @valid_after_time = args[:valid_after_time] if args.key?(:valid_after_time)
474
+ @private_key_type = args[:private_key_type] if args.key?(:private_key_type)
475
+ @private_key_data = args[:private_key_data] if args.key?(:private_key_data)
476
+ @public_key_data = args[:public_key_data] if args.key?(:public_key_data)
462
477
  end
463
478
  end
464
479
 
465
- # A role in the Identity and Access Management API.
466
- class Role
480
+ # The service account key create request.
481
+ class CreateServiceAccountKeyRequest
467
482
  include Google::Apis::Core::Hashable
468
483
 
469
- # The name of the role.
470
- # When Role is used in CreateRole, the role name must not be set.
471
- # When Role is used in output and other input such as UpdateRole, the role
472
- # name is the complete path, e.g., roles/logging.viewer for curated roles
473
- # and organizations/`ORGANIZATION_ID`/roles/logging.viewer for custom roles.
474
- # Corresponds to the JSON property `name`
475
- # @return [String]
476
- attr_accessor :name
477
-
478
- # Optional. A human-readable description for the role.
479
- # Corresponds to the JSON property `description`
484
+ # Which type of key and algorithm to use for the key.
485
+ # The default is currently a 4K RSA key. However this may change in the
486
+ # future.
487
+ # Corresponds to the JSON property `keyAlgorithm`
480
488
  # @return [String]
481
- attr_accessor :description
489
+ attr_accessor :key_algorithm
482
490
 
483
- # Optional. A human-readable title for the role. Typically this
484
- # is limited to 100 UTF-8 bytes.
485
- # Corresponds to the JSON property `title`
491
+ # The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the
492
+ # default output format.
493
+ # Corresponds to the JSON property `privateKeyType`
486
494
  # @return [String]
487
- attr_accessor :title
495
+ attr_accessor :private_key_type
488
496
 
489
497
  def initialize(**args)
490
498
  update!(**args)
@@ -492,45 +500,22 @@ module Google
492
500
 
493
501
  # Update properties of this object
494
502
  def update!(**args)
495
- @name = args[:name] if args.key?(:name)
496
- @description = args[:description] if args.key?(:description)
497
- @title = args[:title] if args.key?(:title)
503
+ @key_algorithm = args[:key_algorithm] if args.key?(:key_algorithm)
504
+ @private_key_type = args[:private_key_type] if args.key?(:private_key_type)
498
505
  end
499
506
  end
500
507
 
501
- # Request message for `SetIamPolicy` method.
502
- class SetIamPolicyRequest
503
- include Google::Apis::Core::Hashable
504
-
505
- # Defines an Identity and Access Management (IAM) policy. It is used to
506
- # specify access control policies for Cloud Platform resources.
507
- # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
508
- # `members` to a `role`, where the members can be user accounts, Google groups,
509
- # Google domains, and service accounts. A `role` is a named list of permissions
510
- # defined by IAM.
511
- # **Example**
512
- # `
513
- # "bindings": [
514
- # `
515
- # "role": "roles/owner",
516
- # "members": [
517
- # "user:mike@example.com",
518
- # "group:admins@example.com",
519
- # "domain:google.com",
520
- # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
521
- # ]
522
- # `,
523
- # `
524
- # "role": "roles/viewer",
525
- # "members": ["user:sean@example.com"]
526
- # `
527
- # ]
528
- # `
529
- # For a description of IAM and its features, see the
530
- # [IAM developer's guide](https://cloud.google.com/iam).
531
- # Corresponds to the JSON property `policy`
532
- # @return [Google::Apis::IamV1::Policy]
533
- attr_accessor :policy
508
+ # Request message for `TestIamPermissions` method.
509
+ class TestIamPermissionsRequest
510
+ include Google::Apis::Core::Hashable
511
+
512
+ # The set of permissions to check for the `resource`. Permissions with
513
+ # wildcards (such as '*' or 'storage.*') are not allowed. For more
514
+ # information see
515
+ # [IAM Overview](https://cloud.google.com/iam/docs/overview#permissions).
516
+ # Corresponds to the JSON property `permissions`
517
+ # @return [Array<String>]
518
+ attr_accessor :permissions
534
519
 
535
520
  def initialize(**args)
536
521
  update!(**args)
@@ -538,38 +523,23 @@ module Google
538
523
 
539
524
  # Update properties of this object
540
525
  def update!(**args)
541
- @policy = args[:policy] if args.key?(:policy)
526
+ @permissions = args[:permissions] if args.key?(:permissions)
542
527
  end
543
528
  end
544
529
 
545
- # Associates `members` with a `role`.
546
- class Binding
530
+ # The service account sign blob response.
531
+ class SignBlobResponse
547
532
  include Google::Apis::Core::Hashable
548
533
 
549
- # Specifies the identities requesting access for a Cloud Platform resource.
550
- # `members` can have the following values:
551
- # * `allUsers`: A special identifier that represents anyone who is
552
- # on the internet; with or without a Google account.
553
- # * `allAuthenticatedUsers`: A special identifier that represents anyone
554
- # who is authenticated with a Google account or a service account.
555
- # * `user:`emailid``: An email address that represents a specific Google
556
- # account. For example, `alice@gmail.com` or `joe@example.com`.
557
- # * `serviceAccount:`emailid``: An email address that represents a service
558
- # account. For example, `my-other-app@appspot.gserviceaccount.com`.
559
- # * `group:`emailid``: An email address that represents a Google group.
560
- # For example, `admins@example.com`.
561
- # * `domain:`domain``: A Google Apps domain name that represents all the
562
- # users of that domain. For example, `google.com` or `example.com`.
563
- # Corresponds to the JSON property `members`
564
- # @return [Array<String>]
565
- attr_accessor :members
534
+ # The id of the key used to sign the blob.
535
+ # Corresponds to the JSON property `keyId`
536
+ # @return [String]
537
+ attr_accessor :key_id
566
538
 
567
- # Role that is assigned to `members`.
568
- # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
569
- # Required
570
- # Corresponds to the JSON property `role`
539
+ # The signed blob.
540
+ # Corresponds to the JSON property `signature`
571
541
  # @return [String]
572
- attr_accessor :role
542
+ attr_accessor :signature
573
543
 
574
544
  def initialize(**args)
575
545
  update!(**args)
@@ -577,22 +547,24 @@ module Google
577
547
 
578
548
  # Update properties of this object
579
549
  def update!(**args)
580
- @members = args[:members] if args.key?(:members)
581
- @role = args[:role] if args.key?(:role)
550
+ @key_id = args[:key_id] if args.key?(:key_id)
551
+ @signature = args[:signature] if args.key?(:signature)
582
552
  end
583
553
  end
584
554
 
585
- # The grantable role query request.
586
- class QueryGrantableRolesRequest
555
+ # The service account sign JWT response.
556
+ class SignJwtResponse
587
557
  include Google::Apis::Core::Hashable
588
558
 
589
- # Required. The full resource name to query from the list of grantable roles.
590
- # The name follows the Google Cloud Platform resource format.
591
- # For example, a Cloud Platform project with id `my-project` will be named
592
- # `//cloudresourcemanager.googleapis.com/projects/my-project`.
593
- # Corresponds to the JSON property `fullResourceName`
559
+ # The id of the key used to sign the JWT.
560
+ # Corresponds to the JSON property `keyId`
594
561
  # @return [String]
595
- attr_accessor :full_resource_name
562
+ attr_accessor :key_id
563
+
564
+ # The signed JWT.
565
+ # Corresponds to the JSON property `signedJwt`
566
+ # @return [String]
567
+ attr_accessor :signed_jwt
596
568
 
597
569
  def initialize(**args)
598
570
  update!(**args)
@@ -600,89 +572,106 @@ module Google
600
572
 
601
573
  # Update properties of this object
602
574
  def update!(**args)
603
- @full_resource_name = args[:full_resource_name] if args.key?(:full_resource_name)
575
+ @key_id = args[:key_id] if args.key?(:key_id)
576
+ @signed_jwt = args[:signed_jwt] if args.key?(:signed_jwt)
604
577
  end
605
578
  end
606
579
 
607
- # A generic empty message that you can re-use to avoid defining duplicated
608
- # empty messages in your APIs. A typical example is to use it as the request
609
- # or the response type of an API method. For instance:
610
- # service Foo `
611
- # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
612
- # `
613
- # The JSON representation for `Empty` is empty JSON object ````.
614
- class Empty
580
+ # The service account sign JWT request.
581
+ class SignJwtRequest
615
582
  include Google::Apis::Core::Hashable
616
583
 
584
+ # The JWT payload to sign, a JSON JWT Claim set.
585
+ # Corresponds to the JSON property `payload`
586
+ # @return [String]
587
+ attr_accessor :payload
588
+
617
589
  def initialize(**args)
618
590
  update!(**args)
619
591
  end
620
592
 
621
593
  # Update properties of this object
622
594
  def update!(**args)
595
+ @payload = args[:payload] if args.key?(:payload)
623
596
  end
624
597
  end
625
598
 
626
- # A service account in the Identity and Access Management API.
627
- # To create a service account, specify the `project_id` and the `account_id`
628
- # for the account. The `account_id` is unique within the project, and is used
629
- # to generate the service account email address and a stable
630
- # `unique_id`.
631
- # If the account already exists, the account's resource name is returned
632
- # in util::Status's ResourceInfo.resource_name in the format of
633
- # projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL`. The caller can
634
- # use the name in other methods to access the account.
635
- # All other methods can identify the service account using the format
636
- # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
637
- # Using `-` as a wildcard for the project will infer the project from
638
- # the account. The `account` value can be the `email` address or the
639
- # `unique_id` of the service account.
640
- class ServiceAccount
599
+ # Defines an Identity and Access Management (IAM) policy. It is used to
600
+ # specify access control policies for Cloud Platform resources.
601
+ # A `Policy` consists of a list of `bindings`. A `Binding` binds a list of
602
+ # `members` to a `role`, where the members can be user accounts, Google groups,
603
+ # Google domains, and service accounts. A `role` is a named list of permissions
604
+ # defined by IAM.
605
+ # **Example**
606
+ # `
607
+ # "bindings": [
608
+ # `
609
+ # "role": "roles/owner",
610
+ # "members": [
611
+ # "user:mike@example.com",
612
+ # "group:admins@example.com",
613
+ # "domain:google.com",
614
+ # "serviceAccount:my-other-app@appspot.gserviceaccount.com",
615
+ # ]
616
+ # `,
617
+ # `
618
+ # "role": "roles/viewer",
619
+ # "members": ["user:sean@example.com"]
620
+ # `
621
+ # ]
622
+ # `
623
+ # For a description of IAM and its features, see the
624
+ # [IAM developer's guide](https://cloud.google.com/iam).
625
+ class Policy
641
626
  include Google::Apis::Core::Hashable
642
627
 
643
- # Optional. A user-specified description of the service account. Must be
644
- # fewer than 100 UTF-8 bytes.
645
- # Corresponds to the JSON property `displayName`
646
- # @return [String]
647
- attr_accessor :display_name
628
+ # Version of the `Policy`. The default version is 0.
629
+ # Corresponds to the JSON property `version`
630
+ # @return [Fixnum]
631
+ attr_accessor :version
648
632
 
649
- # Used to perform a consistent read-modify-write.
633
+ # Associates a list of `members` to a `role`.
634
+ # Multiple `bindings` must not be specified for the same `role`.
635
+ # `bindings` with no members will result in an error.
636
+ # Corresponds to the JSON property `bindings`
637
+ # @return [Array<Google::Apis::IamV1::Binding>]
638
+ attr_accessor :bindings
639
+
640
+ # `etag` is used for optimistic concurrency control as a way to help
641
+ # prevent simultaneous updates of a policy from overwriting each other.
642
+ # It is strongly suggested that systems make use of the `etag` in the
643
+ # read-modify-write cycle to perform policy updates in order to avoid race
644
+ # conditions: An `etag` is returned in the response to `getIamPolicy`, and
645
+ # systems are expected to put that etag in the request to `setIamPolicy` to
646
+ # ensure that their change will be applied to the same version of the policy.
647
+ # If no `etag` is provided in the call to `setIamPolicy`, then the existing
648
+ # policy is overwritten blindly.
650
649
  # Corresponds to the JSON property `etag`
651
650
  # @return [String]
652
651
  attr_accessor :etag
653
652
 
654
- # @OutputOnly The email address of the service account.
655
- # Corresponds to the JSON property `email`
656
- # @return [String]
657
- attr_accessor :email
658
-
659
- # The resource name of the service account in the following format:
660
- # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
661
- # Requests using `-` as a wildcard for the project will infer the project
662
- # from the `account` and the `account` value can be the `email` address or
663
- # the `unique_id` of the service account.
664
- # In responses the resource name will always be in the format
665
- # `projects/`PROJECT_ID`/serviceAccounts/`SERVICE_ACCOUNT_EMAIL``.
666
- # Corresponds to the JSON property `name`
667
- # @return [String]
668
- attr_accessor :name
653
+ def initialize(**args)
654
+ update!(**args)
655
+ end
669
656
 
670
- # @OutputOnly The id of the project that owns the service account.
671
- # Corresponds to the JSON property `projectId`
672
- # @return [String]
673
- attr_accessor :project_id
657
+ # Update properties of this object
658
+ def update!(**args)
659
+ @version = args[:version] if args.key?(:version)
660
+ @bindings = args[:bindings] if args.key?(:bindings)
661
+ @etag = args[:etag] if args.key?(:etag)
662
+ end
663
+ end
674
664
 
675
- # @OutputOnly The unique and stable id of the service account.
676
- # Corresponds to the JSON property `uniqueId`
677
- # @return [String]
678
- attr_accessor :unique_id
665
+ # Audit log information specific to Cloud IAM. This message is serialized
666
+ # as an `Any` type in the `ServiceData` message of an
667
+ # `AuditLog` message.
668
+ class AuditData
669
+ include Google::Apis::Core::Hashable
679
670
 
680
- # @OutputOnly. The OAuth2 client id for the service account.
681
- # This is used in conjunction with the OAuth2 clientconfig API to make
682
- # three legged OAuth2 (3LO) flows to access the data of Google users.
683
- # Corresponds to the JSON property `oauth2ClientId`
684
- # @return [String]
685
- attr_accessor :oauth2_client_id
671
+ # The difference delta between two policies.
672
+ # Corresponds to the JSON property `policyDelta`
673
+ # @return [Google::Apis::IamV1::PolicyDelta]
674
+ attr_accessor :policy_delta
686
675
 
687
676
  def initialize(**args)
688
677
  update!(**args)
@@ -690,25 +679,34 @@ module Google
690
679
 
691
680
  # Update properties of this object
692
681
  def update!(**args)
693
- @display_name = args[:display_name] if args.key?(:display_name)
694
- @etag = args[:etag] if args.key?(:etag)
695
- @email = args[:email] if args.key?(:email)
696
- @name = args[:name] if args.key?(:name)
697
- @project_id = args[:project_id] if args.key?(:project_id)
698
- @unique_id = args[:unique_id] if args.key?(:unique_id)
699
- @oauth2_client_id = args[:oauth2_client_id] if args.key?(:oauth2_client_id)
682
+ @policy_delta = args[:policy_delta] if args.key?(:policy_delta)
700
683
  end
701
684
  end
702
685
 
703
- # Response message for `TestIamPermissions` method.
704
- class TestIamPermissionsResponse
686
+ # One delta entry for Binding. Each individual change (only one member in each
687
+ # entry) to a binding will be a separate entry.
688
+ class BindingDelta
705
689
  include Google::Apis::Core::Hashable
706
690
 
707
- # A subset of `TestPermissionsRequest.permissions` that the caller is
708
- # allowed.
709
- # Corresponds to the JSON property `permissions`
710
- # @return [Array<String>]
711
- attr_accessor :permissions
691
+ # The action that was performed on a Binding.
692
+ # Required
693
+ # Corresponds to the JSON property `action`
694
+ # @return [String]
695
+ attr_accessor :action
696
+
697
+ # A single identity requesting access for a Cloud Platform resource.
698
+ # Follows the same format of Binding.members.
699
+ # Required
700
+ # Corresponds to the JSON property `member`
701
+ # @return [String]
702
+ attr_accessor :member
703
+
704
+ # Role that is assigned to `members`.
705
+ # For example, `roles/viewer`, `roles/editor`, or `roles/owner`.
706
+ # Required
707
+ # Corresponds to the JSON property `role`
708
+ # @return [String]
709
+ attr_accessor :role
712
710
 
713
711
  def initialize(**args)
714
712
  update!(**args)
@@ -716,18 +714,20 @@ module Google
716
714
 
717
715
  # Update properties of this object
718
716
  def update!(**args)
719
- @permissions = args[:permissions] if args.key?(:permissions)
717
+ @action = args[:action] if args.key?(:action)
718
+ @member = args[:member] if args.key?(:member)
719
+ @role = args[:role] if args.key?(:role)
720
720
  end
721
721
  end
722
722
 
723
- # The service account keys list response.
724
- class ListServiceAccountKeysResponse
723
+ # The difference delta between two policies.
724
+ class PolicyDelta
725
725
  include Google::Apis::Core::Hashable
726
726
 
727
- # The public keys for the service account.
728
- # Corresponds to the JSON property `keys`
729
- # @return [Array<Google::Apis::IamV1::ServiceAccountKey>]
730
- attr_accessor :keys
727
+ # The delta for Bindings between two policies.
728
+ # Corresponds to the JSON property `bindingDeltas`
729
+ # @return [Array<Google::Apis::IamV1::BindingDelta>]
730
+ attr_accessor :binding_deltas
731
731
 
732
732
  def initialize(**args)
733
733
  update!(**args)
@@ -735,7 +735,7 @@ module Google
735
735
 
736
736
  # Update properties of this object
737
737
  def update!(**args)
738
- @keys = args[:keys] if args.key?(:keys)
738
+ @binding_deltas = args[:binding_deltas] if args.key?(:binding_deltas)
739
739
  end
740
740
  end
741
741
  end