| 
									
										
										
										
											2018-06-08 00:35:54 +00:00
										 |  |  | # Copyright 2015 Google Inc. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Licensed under the Apache License, Version 2.0 (the "License"); | 
					
						
							|  |  |  | # you may not use this file except in compliance with the License. | 
					
						
							|  |  |  | # You may obtain a copy of the License at | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #      http://www.apache.org/licenses/LICENSE-2.0 | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Unless required by applicable law or agreed to in writing, software | 
					
						
							|  |  |  | # distributed under the License is distributed on an "AS IS" BASIS, | 
					
						
							|  |  |  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
					
						
							|  |  |  | # See the License for the specific language governing permissions and | 
					
						
							|  |  |  | # limitations under the License. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require 'date' | 
					
						
							|  |  |  | require 'google/apis/core/base_service' | 
					
						
							|  |  |  | require 'google/apis/core/json_representation' | 
					
						
							|  |  |  | require 'google/apis/core/hashable' | 
					
						
							|  |  |  | require 'google/apis/errors' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module Google | 
					
						
							|  |  |  |   module Apis | 
					
						
							|  |  |  |     module IamcredentialsV1 | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class GenerateAccessTokenRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The sequence of service accounts in a delegation chain. Each service account | 
					
						
							|  |  |  |         # must be granted the `roles/iam.serviceAccountTokenCreator` role on its next | 
					
						
							|  |  |  |         # service account in the chain. The last service account in the chain must be | 
					
						
							|  |  |  |         # granted the `roles/iam.serviceAccountTokenCreator` role on the service account | 
					
						
							|  |  |  |         # that is specified in the `name` field of the request. The delegates must have | 
					
						
							|  |  |  |         # the following format: `projects/-/serviceAccounts/`ACCOUNT_EMAIL_OR_UNIQUEID``. | 
					
						
							|  |  |  |         # The `-` wildcard character is required; replacing it with a project ID is | 
					
						
							|  |  |  |         # invalid. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `delegates` | 
					
						
							|  |  |  |         # @return [Array<String>] | 
					
						
							|  |  |  |         attr_accessor :delegates | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-28 00:38:58 +00:00
										 |  |  |         # The desired lifetime duration of the access token in seconds. By default, the | 
					
						
							|  |  |  |         # maximum allowed value is 1 hour. To set a lifetime of up to 12 hours, you can | 
					
						
							|  |  |  |         # add the service account as an allowed value in an Organization Policy that | 
					
						
							|  |  |  |         # enforces the `constraints/iam.allowServiceAccountCredentialLifetimeExtension` | 
					
						
							|  |  |  |         # constraint. See detailed instructions at https://cloud.google.com/iam/help/ | 
					
						
							|  |  |  |         # credentials/lifetime If a value is not specified, the token's lifetime will be | 
					
						
							|  |  |  |         # set to a default value of 1 hour. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `lifetime` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :lifetime | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-12-14 00:37:41 +00:00
										 |  |  |         # Required. Code to identify the scopes to be included in the OAuth 2.0 access | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # token. See https://developers.google.com/identity/protocols/googlescopes for | 
					
						
							|  |  |  |         # more information. At least one value required. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `scope` | 
					
						
							|  |  |  |         # @return [Array<String>] | 
					
						
							|  |  |  |         attr_accessor :scope | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @delegates = args[:delegates] if args.key?(:delegates) | 
					
						
							|  |  |  |           @lifetime = args[:lifetime] if args.key?(:lifetime) | 
					
						
							|  |  |  |           @scope = args[:scope] if args.key?(:scope) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class GenerateAccessTokenResponse | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # The OAuth 2.0 access token. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `accessToken` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :access_token | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # Token expiration time. The expiration time is always set. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `expireTime` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :expire_time | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @access_token = args[:access_token] if args.key?(:access_token) | 
					
						
							|  |  |  |           @expire_time = args[:expire_time] if args.key?(:expire_time) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class GenerateIdTokenRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-12-14 00:37:41 +00:00
										 |  |  |         # Required. The audience for the token, such as the API or account that this | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # token grants access to. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `audience` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :audience | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The sequence of service accounts in a delegation chain. Each service account | 
					
						
							|  |  |  |         # must be granted the `roles/iam.serviceAccountTokenCreator` role on its next | 
					
						
							|  |  |  |         # service account in the chain. The last service account in the chain must be | 
					
						
							|  |  |  |         # granted the `roles/iam.serviceAccountTokenCreator` role on the service account | 
					
						
							|  |  |  |         # that is specified in the `name` field of the request. The delegates must have | 
					
						
							|  |  |  |         # the following format: `projects/-/serviceAccounts/`ACCOUNT_EMAIL_OR_UNIQUEID``. | 
					
						
							|  |  |  |         # The `-` wildcard character is required; replacing it with a project ID is | 
					
						
							|  |  |  |         # invalid. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `delegates` | 
					
						
							|  |  |  |         # @return [Array<String>] | 
					
						
							|  |  |  |         attr_accessor :delegates | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # Include the service account email in the token. If set to `true`, the token | 
					
						
							|  |  |  |         # will contain `email` and `email_verified` claims. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `includeEmail` | 
					
						
							|  |  |  |         # @return [Boolean] | 
					
						
							|  |  |  |         attr_accessor :include_email | 
					
						
							|  |  |  |         alias_method :include_email?, :include_email | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @audience = args[:audience] if args.key?(:audience) | 
					
						
							|  |  |  |           @delegates = args[:delegates] if args.key?(:delegates) | 
					
						
							|  |  |  |           @include_email = args[:include_email] if args.key?(:include_email) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class GenerateIdTokenResponse | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # The OpenId Connect ID token. | 
					
						
							|  |  |  |         # Corresponds to the JSON property `token` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :token | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @token = args[:token] if args.key?(:token) | 
					
						
							|  |  |  |         end | 
					
						
							| 
									
										
										
										
											2018-08-31 00:36:52 +00:00
										 |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |       #  | 
					
						
							|  |  |  |       class SignBlobRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The sequence of service accounts in a delegation chain. Each service account | 
					
						
							|  |  |  |         # must be granted the `roles/iam.serviceAccountTokenCreator` role on its next | 
					
						
							|  |  |  |         # service account in the chain. The last service account in the chain must be | 
					
						
							|  |  |  |         # granted the `roles/iam.serviceAccountTokenCreator` role on the service account | 
					
						
							|  |  |  |         # that is specified in the `name` field of the request. The delegates must have | 
					
						
							|  |  |  |         # the following format: `projects/-/serviceAccounts/`ACCOUNT_EMAIL_OR_UNIQUEID``. | 
					
						
							|  |  |  |         # The `-` wildcard character is required; replacing it with a project ID is | 
					
						
							|  |  |  |         # invalid. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `delegates` | 
					
						
							|  |  |  |         # @return [Array<String>] | 
					
						
							|  |  |  |         attr_accessor :delegates | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2019-12-14 00:37:41 +00:00
										 |  |  |         # Required. The bytes to sign. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `payload` | 
					
						
							|  |  |  |         # NOTE: Values are automatically base64 encoded/decoded in the client library. | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :payload | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @delegates = args[:delegates] if args.key?(:delegates) | 
					
						
							|  |  |  |           @payload = args[:payload] if args.key?(:payload) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class SignBlobResponse | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The ID of the key used to sign the blob. The key used for signing will remain | 
					
						
							|  |  |  |         # valid for at least 12 hours after the blob is signed. To verify the signature, | 
					
						
							|  |  |  |         # you can retrieve the public key in several formats from the following | 
					
						
							|  |  |  |         # endpoints: - RSA public key wrapped in an X.509 v3 certificate: `https://www. | 
					
						
							|  |  |  |         # googleapis.com/service_accounts/v1/metadata/x509/`ACCOUNT_EMAIL`` - Raw key in | 
					
						
							|  |  |  |         # JSON format: `https://www.googleapis.com/service_accounts/v1/metadata/raw/` | 
					
						
							|  |  |  |         # ACCOUNT_EMAIL`` - JSON Web Key (JWK): `https://www.googleapis.com/ | 
					
						
							|  |  |  |         # service_accounts/v1/metadata/jwk/`ACCOUNT_EMAIL`` | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `keyId` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :key_id | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The signature for the blob. Does not include the original blob. After the key | 
					
						
							|  |  |  |         # pair referenced by the `key_id` response field expires, Google no longer | 
					
						
							|  |  |  |         # exposes the public key that can be used to verify the blob. As a result, the | 
					
						
							|  |  |  |         # receiver can no longer verify the signature. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `signedBlob` | 
					
						
							|  |  |  |         # NOTE: Values are automatically base64 encoded/decoded in the client library. | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :signed_blob | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @key_id = args[:key_id] if args.key?(:key_id) | 
					
						
							|  |  |  |           @signed_blob = args[:signed_blob] if args.key?(:signed_blob) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class SignJwtRequest | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The sequence of service accounts in a delegation chain. Each service account | 
					
						
							|  |  |  |         # must be granted the `roles/iam.serviceAccountTokenCreator` role on its next | 
					
						
							|  |  |  |         # service account in the chain. The last service account in the chain must be | 
					
						
							|  |  |  |         # granted the `roles/iam.serviceAccountTokenCreator` role on the service account | 
					
						
							|  |  |  |         # that is specified in the `name` field of the request. The delegates must have | 
					
						
							|  |  |  |         # the following format: `projects/-/serviceAccounts/`ACCOUNT_EMAIL_OR_UNIQUEID``. | 
					
						
							|  |  |  |         # The `-` wildcard character is required; replacing it with a project ID is | 
					
						
							|  |  |  |         # invalid. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `delegates` | 
					
						
							|  |  |  |         # @return [Array<String>] | 
					
						
							|  |  |  |         attr_accessor :delegates | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-05-07 20:07:42 +00:00
										 |  |  |         # Required. The JWT payload to sign. Must be a serialized JSON object that | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # contains a JWT Claims Set. For example: ``"sub": "user@example.com", "iat": | 
					
						
							|  |  |  |         # 313435`` If the JWT Claims Set contains an expiration time (`exp`) claim, it | 
					
						
							|  |  |  |         # must be an integer timestamp that is not in the past and no more than 12 hours | 
					
						
							|  |  |  |         # in the future. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `payload` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :payload | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @delegates = args[:delegates] if args.key?(:delegates) | 
					
						
							|  |  |  |           @payload = args[:payload] if args.key?(:payload) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |       #  | 
					
						
							|  |  |  |       class SignJwtResponse | 
					
						
							|  |  |  |         include Google::Apis::Core::Hashable | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The ID of the key used to sign the JWT. The key used for signing will remain | 
					
						
							|  |  |  |         # valid for at least 12 hours after the JWT is signed. To verify the signature, | 
					
						
							|  |  |  |         # you can retrieve the public key in several formats from the following | 
					
						
							|  |  |  |         # endpoints: - RSA public key wrapped in an X.509 v3 certificate: `https://www. | 
					
						
							|  |  |  |         # googleapis.com/service_accounts/v1/metadata/x509/`ACCOUNT_EMAIL`` - Raw key in | 
					
						
							|  |  |  |         # JSON format: `https://www.googleapis.com/service_accounts/v1/metadata/raw/` | 
					
						
							|  |  |  |         # ACCOUNT_EMAIL`` - JSON Web Key (JWK): `https://www.googleapis.com/ | 
					
						
							|  |  |  |         # service_accounts/v1/metadata/jwk/`ACCOUNT_EMAIL`` | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `keyId` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :key_id | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2020-08-14 00:38:12 +00:00
										 |  |  |         # The signed JWT. Contains the automatically generated header; the client- | 
					
						
							|  |  |  |         # supplied payload; and the signature, which is generated using the key | 
					
						
							|  |  |  |         # referenced by the `kid` field in the header. After the key pair referenced by | 
					
						
							|  |  |  |         # the `key_id` response field expires, Google no longer exposes the public key | 
					
						
							|  |  |  |         # that can be used to verify the JWT. As a result, the receiver can no longer | 
					
						
							|  |  |  |         # verify the signature. | 
					
						
							| 
									
										
										
										
											2018-06-29 00:37:36 +00:00
										 |  |  |         # Corresponds to the JSON property `signedJwt` | 
					
						
							|  |  |  |         # @return [String] | 
					
						
							|  |  |  |         attr_accessor :signed_jwt | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         def initialize(**args) | 
					
						
							|  |  |  |            update!(**args) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |        | 
					
						
							|  |  |  |         # Update properties of this object | 
					
						
							|  |  |  |         def update!(**args) | 
					
						
							|  |  |  |           @key_id = args[:key_id] if args.key?(:key_id) | 
					
						
							|  |  |  |           @signed_jwt = args[:signed_jwt] if args.key?(:signed_jwt) | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2018-06-08 00:35:54 +00:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |