Module: Azure::Common::Configurable

Included in:
MobileEngagement::Profiles::Latest::Mgmt::Client
Defined in:
lib/profiles/common/configurable.rb

Overview

The Azure::Common::Configurable module provides basic configuration for Azure activities.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#active_directory_settingsMsRestAzure::ActiveDirectoryServiceSettings

Returns Azure active directory service settings.

Returns:

  • (MsRestAzure::ActiveDirectoryServiceSettings)

    Azure active directory service settings.



21
22
23
# File 'lib/profiles/common/configurable.rb', line 21

def active_directory_settings
  @active_directory_settings
end

#client_idString

Returns Azure client id.

Returns:

  • (String)

    Azure client id.



12
13
14
# File 'lib/profiles/common/configurable.rb', line 12

def client_id
  @client_id
end

#client_secretString

Returns Azure secret key.

Returns:

  • (String)

    Azure secret key.



15
16
17
# File 'lib/profiles/common/configurable.rb', line 15

def client_secret
  @client_secret
end

#credentialsMsRest::ServiceClientCredentials

Returns credentials to authorize HTTP requests made by the service client.

Returns:

  • (MsRest::ServiceClientCredentials)

    credentials to authorize HTTP requests made by the service client.



24
25
26
# File 'lib/profiles/common/configurable.rb', line 24

def credentials
  @credentials
end

#subscription_idString

Returns Azure subscription id.

Returns:

  • (String)

    Azure subscription id.



18
19
20
# File 'lib/profiles/common/configurable.rb', line 18

def subscription_id
  @subscription_id
end

#tenant_idString

Returns Azure tenant id (also known as domain).

Returns:

  • (String)

    Azure tenant id (also known as domain).



9
10
11
# File 'lib/profiles/common/configurable.rb', line 9

def tenant_id
  @tenant_id
end

Class Method Details

.keysArray

List of configurable keys for Azure::Common::Client.

Returns:

  • (Array)

    of option keys.



31
32
33
# File 'lib/profiles/common/configurable.rb', line 31

def keys
  @keys ||= [:tenant_id, :client_id, :client_secret, :subscription_id, :active_directory_settings]
end

Instance Method Details

#configObject



68
69
70
# File 'lib/profiles/common/configurable.rb', line 68

def config
  self
end

#configure {|_self| ... } ⇒ Object

Set configuration options using a block.

Yields:

  • (_self)

Yield Parameters:



39
40
41
# File 'lib/profiles/common/configurable.rb', line 39

def configure
  yield self
end

#reset!(options = {}) ⇒ Object

Resets the configurable options to provided options or defaults. This will also creates MsRest::TokenCredentials to be used for subsequent Azure Resource Manager clients.



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'lib/profiles/common/configurable.rb', line 47

def reset!(options = {})
  Azure::Common::Configurable.keys.each do |key|
    default_value = Azure::Common::Default.options[key]
    instance_variable_set(:"@#{key}", options.fetch(key, default_value))
  end

  fail ArgumentError, 'tenant_id is nil' if self.tenant_id.nil?
  fail ArgumentError, 'client_id is nil' if self.client_id.nil?
  fail ArgumentError, 'client_secret is nil' if self.client_secret.nil?
  fail ArgumentError, 'subscription_id is nil' if self.subscription_id.nil?
  fail ArgumentError, 'active_directory_settings is nil' if self.active_directory_settings.nil?

  default_value = MsRest::TokenCredentials.new(
    MsRestAzure::ApplicationTokenProvider.new(
      self.tenant_id, self.client_id, self.client_secret, self.active_directory_settings))

  instance_variable_set(:"@credentials", options.fetch(:credentials, default_value))

  self
end