class RailsCloudTasks::Credentials
Constants
- DEFAULT_SCOPES
Attributes
auth[R]
iam_credential[R]
request_options[R]
token_request[R]
Public Class Methods
new( request_options: Google::Apis::RequestOptions.new, iam_credential: Google::Apis::IamcredentialsV1::IAMCredentialsService.new, token_request: Google::Apis::IamcredentialsV1::GenerateAccessTokenRequest, auth: Google::Auth )
click to toggle source
# File lib/rails_cloud_tasks/credentials.rb, line 9 def initialize( request_options: Google::Apis::RequestOptions.new, iam_credential: Google::Apis::IamcredentialsV1::IAMCredentialsService.new, token_request: Google::Apis::IamcredentialsV1::GenerateAccessTokenRequest, auth: Google::Auth ) @auth = auth @request_options = request_options @iam_credential = iam_credential @token_request = token_request end
Public Instance Methods
generate(impersonate_account = nil, scopes = [])
click to toggle source
# File lib/rails_cloud_tasks/credentials.rb, line 21 def generate(impersonate_account = nil, scopes = []) current_scopes = DEFAULT_SCOPES + scopes authorization = auth.get_application_default(current_scopes).dup request_options.authorization = authorization if impersonate_account iam_credential.generate_service_account_access_token( "projects/-/serviceAccounts/#{impersonate_account}", token_request.new(scope: current_scopes, lifetime: '3600s'), options: request_options ) end request_options.authorization end