azure_key_vault 0.18.1 → 0.19.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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/2015-06-01/generated/azure_key_vault/key_vault_client.rb +38 -38
  3. data/lib/2015-06-01/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  4. data/lib/2016-10-01/generated/azure_key_vault/key_vault_client.rb +46 -46
  5. data/lib/2016-10-01/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  6. data/lib/7.0-preview/generated/azure_key_vault/key_vault_client.rb +50 -50
  7. data/lib/7.0-preview/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  8. data/lib/7.0/generated/azure_key_vault/key_vault_client.rb +49 -49
  9. data/lib/7.0/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  10. data/lib/7.1-preview/generated/azure_key_vault/key_vault_client.rb +50 -50
  11. data/lib/7.1-preview/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  12. data/lib/7.1/generated/azure_key_vault/key_vault_client.rb +50 -50
  13. data/lib/7.1/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  14. data/lib/7.2-preview/generated/azure_key_vault.rb +56 -64
  15. data/lib/7.2-preview/generated/azure_key_vault/hsmsecurity_domain.rb +206 -49
  16. data/lib/7.2-preview/generated/azure_key_vault/key_vault_client.rb +68 -218
  17. data/lib/7.2-preview/generated/azure_key_vault/models/certificate_import_parameters.rb +1 -1
  18. data/lib/7.2-preview/generated/azure_key_vault/models/certificate_info_object.rb +1 -1
  19. data/lib/7.2-preview/generated/azure_key_vault/models/data_action.rb +43 -0
  20. data/lib/7.2-preview/generated/azure_key_vault/models/deleted_key_bundle.rb +0 -9
  21. data/lib/7.2-preview/generated/azure_key_vault/models/json_web_key_operation.rb +0 -1
  22. data/lib/7.2-preview/generated/azure_key_vault/models/key_attributes.rb +0 -11
  23. data/lib/7.2-preview/generated/azure_key_vault/models/key_bundle.rb +0 -13
  24. data/lib/7.2-preview/generated/azure_key_vault/models/key_create_parameters.rb +0 -13
  25. data/lib/7.2-preview/generated/azure_key_vault/models/key_import_parameters.rb +0 -13
  26. data/lib/7.2-preview/generated/azure_key_vault/models/key_operation_result.rb +36 -0
  27. data/lib/7.2-preview/generated/azure_key_vault/models/key_properties.rb +0 -11
  28. data/lib/7.2-preview/generated/azure_key_vault/models/key_update_parameters.rb +0 -13
  29. data/lib/7.2-preview/generated/azure_key_vault/models/permission.rb +10 -6
  30. data/lib/7.2-preview/generated/azure_key_vault/models/restore_operation_parameters.rb +2 -1
  31. data/lib/7.2-preview/generated/azure_key_vault/models/role_assignment_properties_with_scope.rb +1 -1
  32. data/lib/7.2-preview/generated/azure_key_vault/models/role_definition.rb +6 -4
  33. data/lib/7.2-preview/generated/azure_key_vault/models/{security_domain_upload_object.rb → role_definition_create_parameters.rb} +10 -10
  34. data/lib/7.2-preview/generated/azure_key_vault/models/role_definition_properties.rb +108 -0
  35. data/lib/7.2-preview/generated/azure_key_vault/models/role_definition_type.rb +15 -0
  36. data/lib/7.2-preview/generated/azure_key_vault/models/{key_release_policy_version.rb → role_scope.rb} +4 -3
  37. data/lib/7.2-preview/generated/azure_key_vault/models/{key_release_condition_condition.rb → role_type.rb} +4 -3
  38. data/lib/7.2-preview/generated/azure_key_vault/models/security_domain_json_web_key.rb +1 -1
  39. data/lib/7.2-preview/generated/azure_key_vault/models/security_domain_object.rb +6 -7
  40. data/lib/7.2-preview/generated/azure_key_vault/models/selective_key_restore_operation_parameters.rb +2 -1
  41. data/lib/7.2-preview/generated/azure_key_vault/role_definitions.rb +335 -0
  42. data/lib/azure_key_vault.rb +5 -5
  43. data/lib/profiles/latest/modules/keyvault_profile_module.rb +180 -212
  44. data/lib/version.rb +1 -1
  45. metadata +8 -16
  46. data/lib/7.2-preview/generated/azure_key_vault/models/enc_data_set.rb +0 -72
  47. data/lib/7.2-preview/generated/azure_key_vault/models/enc_data_set_item.rb +0 -58
  48. data/lib/7.2-preview/generated/azure_key_vault/models/key.rb +0 -58
  49. data/lib/7.2-preview/generated/azure_key_vault/models/key_export_parameters.rb +0 -49
  50. data/lib/7.2-preview/generated/azure_key_vault/models/key_release_authority.rb +0 -70
  51. data/lib/7.2-preview/generated/azure_key_vault/models/key_release_condition.rb +0 -76
  52. data/lib/7.2-preview/generated/azure_key_vault/models/key_release_policy.rb +0 -68
  53. data/lib/7.2-preview/generated/azure_key_vault/models/security_domain_object_data.rb +0 -71
  54. data/lib/7.2-preview/generated/azure_key_vault/models/security_domain_object_data_shared_keys.rb +0 -87
  55. data/lib/7.2-preview/generated/azure_key_vault/models/security_domain_upload_object_value.rb +0 -61
  56. data/lib/7.2-preview/generated/azure_key_vault/models/security_domain_upload_object_value_wrapped_key.rb +0 -59
@@ -0,0 +1,108 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::KeyVault::V7_2_preview
7
+ module Models
8
+ #
9
+ # Role definition properties.
10
+ #
11
+ class RoleDefinitionProperties
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] The role name.
16
+ attr_accessor :role_name
17
+
18
+ # @return [String] The role definition description.
19
+ attr_accessor :description
20
+
21
+ # @return [RoleType] The role type. Possible values include:
22
+ # 'BuiltInRole', 'CustomRole'
23
+ attr_accessor :role_type
24
+
25
+ # @return [Array<Permission>] Role definition permissions.
26
+ attr_accessor :permissions
27
+
28
+ # @return [Array<RoleScope>] Role definition assignable scopes.
29
+ attr_accessor :assignable_scopes
30
+
31
+
32
+ #
33
+ # Mapper for RoleDefinitionProperties class as Ruby Hash.
34
+ # This will be used for serialization/deserialization.
35
+ #
36
+ def self.mapper()
37
+ {
38
+ client_side_validation: true,
39
+ required: false,
40
+ serialized_name: 'RoleDefinitionProperties',
41
+ type: {
42
+ name: 'Composite',
43
+ class_name: 'RoleDefinitionProperties',
44
+ model_properties: {
45
+ role_name: {
46
+ client_side_validation: true,
47
+ required: false,
48
+ serialized_name: 'roleName',
49
+ type: {
50
+ name: 'String'
51
+ }
52
+ },
53
+ description: {
54
+ client_side_validation: true,
55
+ required: false,
56
+ serialized_name: 'description',
57
+ type: {
58
+ name: 'String'
59
+ }
60
+ },
61
+ role_type: {
62
+ client_side_validation: true,
63
+ required: false,
64
+ serialized_name: 'type',
65
+ type: {
66
+ name: 'String'
67
+ }
68
+ },
69
+ permissions: {
70
+ client_side_validation: true,
71
+ required: false,
72
+ serialized_name: 'permissions',
73
+ type: {
74
+ name: 'Sequence',
75
+ element: {
76
+ client_side_validation: true,
77
+ required: false,
78
+ serialized_name: 'PermissionElementType',
79
+ type: {
80
+ name: 'Composite',
81
+ class_name: 'Permission'
82
+ }
83
+ }
84
+ }
85
+ },
86
+ assignable_scopes: {
87
+ client_side_validation: true,
88
+ required: false,
89
+ serialized_name: 'assignableScopes',
90
+ type: {
91
+ name: 'Sequence',
92
+ element: {
93
+ client_side_validation: true,
94
+ required: false,
95
+ serialized_name: 'RoleScopeElementType',
96
+ type: {
97
+ name: 'String'
98
+ }
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ }
105
+ end
106
+ end
107
+ end
108
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: utf-8
2
+ # Code generated by Microsoft (R) AutoRest Code Generator.
3
+ # Changes may cause incorrect behavior and will be lost if the code is
4
+ # regenerated.
5
+
6
+ module Azure::KeyVault::V7_2_preview
7
+ module Models
8
+ #
9
+ # Defines values for RoleDefinitionType
10
+ #
11
+ module RoleDefinitionType
12
+ MicrosoftAuthorizationroleDefinitions = "Microsoft.Authorization/roleDefinitions"
13
+ end
14
+ end
15
+ end
@@ -6,10 +6,11 @@
6
6
  module Azure::KeyVault::V7_2_preview
7
7
  module Models
8
8
  #
9
- # Defines values for KeyReleasePolicyVersion
9
+ # Defines values for RoleScope
10
10
  #
11
- module KeyReleasePolicyVersion
12
- ZeroFullStopTwo = "0.2"
11
+ module RoleScope
12
+ Global = "/"
13
+ Keys = "/keys"
13
14
  end
14
15
  end
15
16
  end
@@ -6,10 +6,11 @@
6
6
  module Azure::KeyVault::V7_2_preview
7
7
  module Models
8
8
  #
9
- # Defines values for KeyReleaseConditionCondition
9
+ # Defines values for RoleType
10
10
  #
11
- module KeyReleaseConditionCondition
12
- Equals = "equals"
11
+ module RoleType
12
+ BuiltInRole = "AKVBuiltInRole"
13
+ CustomRole = "CustomRole"
13
14
  end
14
15
  end
15
16
  end
@@ -18,7 +18,7 @@ module Azure::KeyVault::V7_2_preview
18
18
 
19
19
  # @return [String] JsonWebKey Key Type (kty), as defined in
20
20
  # https://tools.ietf.org/html/draft-ietf-jose-json-web-algorithms-40. For
21
- # security domain this value must be RSA
21
+ # Security Domain this value must be RSA.
22
22
  attr_accessor :kty
23
23
 
24
24
  # @return [Array<String>]
@@ -6,14 +6,14 @@
6
6
  module Azure::KeyVault::V7_2_preview
7
7
  module Models
8
8
  #
9
- # Security domain
9
+ # The Security Domain.
10
10
  #
11
11
  class SecurityDomainObject
12
12
 
13
13
  include MsRestAzure
14
14
 
15
- # @return [SecurityDomainObjectData]
16
- attr_accessor :data
15
+ # @return [String] The Security Domain.
16
+ attr_accessor :value
17
17
 
18
18
 
19
19
  #
@@ -29,13 +29,12 @@ module Azure::KeyVault::V7_2_preview
29
29
  name: 'Composite',
30
30
  class_name: 'SecurityDomainObject',
31
31
  model_properties: {
32
- data: {
32
+ value: {
33
33
  client_side_validation: true,
34
34
  required: true,
35
- serialized_name: 'data',
35
+ serialized_name: 'value',
36
36
  type: {
37
- name: 'Composite',
38
- class_name: 'SecurityDomainObjectData'
37
+ name: 'String'
39
38
  }
40
39
  }
41
40
  }
@@ -13,7 +13,8 @@ module Azure::KeyVault::V7_2_preview
13
13
 
14
14
  include MsRestAzure
15
15
 
16
- # @return [SASTokenParameter]
16
+ # @return [SASTokenParameter] SAS token parameter object containing Azure
17
+ # storage resourceUri and token
17
18
  attr_accessor :sas_token_parameters
18
19
 
19
20
  # @return [String] The Folder name of the blob where the previous
@@ -22,6 +22,341 @@ module Azure::KeyVault::V7_2_preview
22
22
  # @return [KeyVaultClient] reference to the KeyVaultClient
23
23
  attr_reader :client
24
24
 
25
+ #
26
+ # Deletes a custom role definition.
27
+ #
28
+ # @param vault_base_url [String] The vault name, for example
29
+ # https://myvault.vault.azure.net.
30
+ # @param scope [String] The scope of the role definition to delete. Managed HSM
31
+ # only supports '/'.
32
+ # @param role_definition_name [String] The name (GUID) of the role definition
33
+ # to delete.
34
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
35
+ # will be added to the HTTP request.
36
+ #
37
+ # @return [RoleDefinition] operation results.
38
+ #
39
+ def delete(vault_base_url, scope, role_definition_name, custom_headers:nil)
40
+ response = delete_async(vault_base_url, scope, role_definition_name, custom_headers:custom_headers).value!
41
+ response.body unless response.nil?
42
+ end
43
+
44
+ #
45
+ # Deletes a custom role definition.
46
+ #
47
+ # @param vault_base_url [String] The vault name, for example
48
+ # https://myvault.vault.azure.net.
49
+ # @param scope [String] The scope of the role definition to delete. Managed HSM
50
+ # only supports '/'.
51
+ # @param role_definition_name [String] The name (GUID) of the role definition
52
+ # to delete.
53
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
54
+ # will be added to the HTTP request.
55
+ #
56
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
57
+ #
58
+ def delete_with_http_info(vault_base_url, scope, role_definition_name, custom_headers:nil)
59
+ delete_async(vault_base_url, scope, role_definition_name, custom_headers:custom_headers).value!
60
+ end
61
+
62
+ #
63
+ # Deletes a custom role definition.
64
+ #
65
+ # @param vault_base_url [String] The vault name, for example
66
+ # https://myvault.vault.azure.net.
67
+ # @param scope [String] The scope of the role definition to delete. Managed HSM
68
+ # only supports '/'.
69
+ # @param role_definition_name [String] The name (GUID) of the role definition
70
+ # to delete.
71
+ # @param [Hash{String => String}] A hash of custom headers that will be added
72
+ # to the HTTP request.
73
+ #
74
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
75
+ #
76
+ def delete_async(vault_base_url, scope, role_definition_name, custom_headers:nil)
77
+ fail ArgumentError, 'vault_base_url is nil' if vault_base_url.nil?
78
+ fail ArgumentError, 'scope is nil' if scope.nil?
79
+ fail ArgumentError, 'role_definition_name is nil' if role_definition_name.nil?
80
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
81
+
82
+
83
+ request_headers = {}
84
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
85
+
86
+ # Set Headers
87
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
88
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
89
+ path_template = '{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'
90
+
91
+ request_url = @base_url || @client.base_url
92
+ request_url = request_url.gsub('{vaultBaseUrl}', vault_base_url)
93
+
94
+ options = {
95
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
96
+ path_params: {'roleDefinitionName' => role_definition_name},
97
+ skip_encoding_path_params: {'scope' => scope},
98
+ query_params: {'api-version' => @client.api_version},
99
+ headers: request_headers.merge(custom_headers || {}),
100
+ base_url: request_url
101
+ }
102
+ promise = @client.make_request_async(:delete, path_template, options)
103
+
104
+ promise = promise.then do |result|
105
+ http_response = result.response
106
+ status_code = http_response.status
107
+ response_content = http_response.body
108
+ unless status_code == 200
109
+ error_model = JSON.load(response_content)
110
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
111
+ end
112
+
113
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
114
+ result.correlation_request_id = http_response['x-ms-correlation-request-id'] unless http_response['x-ms-correlation-request-id'].nil?
115
+ result.client_request_id = http_response['x-ms-client-request-id'] unless http_response['x-ms-client-request-id'].nil?
116
+ # Deserialize Response
117
+ if status_code == 200
118
+ begin
119
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
120
+ result_mapper = Azure::KeyVault::V7_2_preview::Models::RoleDefinition.mapper()
121
+ result.body = @client.deserialize(result_mapper, parsed_response)
122
+ rescue Exception => e
123
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
124
+ end
125
+ end
126
+
127
+ result
128
+ end
129
+
130
+ promise.execute
131
+ end
132
+
133
+ #
134
+ # Creates or updates a custom role definition.
135
+ #
136
+ # @param vault_base_url [String] The vault name, for example
137
+ # https://myvault.vault.azure.net.
138
+ # @param scope [String] The scope of the role definition to create or update.
139
+ # Managed HSM only supports '/'.
140
+ # @param role_definition_name [String] The name of the role definition to
141
+ # create or update. It can be any valid GUID.
142
+ # @param parameters [RoleDefinitionCreateParameters] Parameters for the role
143
+ # definition.
144
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
145
+ # will be added to the HTTP request.
146
+ #
147
+ # @return [RoleDefinition] operation results.
148
+ #
149
+ def create_or_update(vault_base_url, scope, role_definition_name, parameters, custom_headers:nil)
150
+ response = create_or_update_async(vault_base_url, scope, role_definition_name, parameters, custom_headers:custom_headers).value!
151
+ response.body unless response.nil?
152
+ end
153
+
154
+ #
155
+ # Creates or updates a custom role definition.
156
+ #
157
+ # @param vault_base_url [String] The vault name, for example
158
+ # https://myvault.vault.azure.net.
159
+ # @param scope [String] The scope of the role definition to create or update.
160
+ # Managed HSM only supports '/'.
161
+ # @param role_definition_name [String] The name of the role definition to
162
+ # create or update. It can be any valid GUID.
163
+ # @param parameters [RoleDefinitionCreateParameters] Parameters for the role
164
+ # definition.
165
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
166
+ # will be added to the HTTP request.
167
+ #
168
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
169
+ #
170
+ def create_or_update_with_http_info(vault_base_url, scope, role_definition_name, parameters, custom_headers:nil)
171
+ create_or_update_async(vault_base_url, scope, role_definition_name, parameters, custom_headers:custom_headers).value!
172
+ end
173
+
174
+ #
175
+ # Creates or updates a custom role definition.
176
+ #
177
+ # @param vault_base_url [String] The vault name, for example
178
+ # https://myvault.vault.azure.net.
179
+ # @param scope [String] The scope of the role definition to create or update.
180
+ # Managed HSM only supports '/'.
181
+ # @param role_definition_name [String] The name of the role definition to
182
+ # create or update. It can be any valid GUID.
183
+ # @param parameters [RoleDefinitionCreateParameters] Parameters for the role
184
+ # definition.
185
+ # @param [Hash{String => String}] A hash of custom headers that will be added
186
+ # to the HTTP request.
187
+ #
188
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
189
+ #
190
+ def create_or_update_async(vault_base_url, scope, role_definition_name, parameters, custom_headers:nil)
191
+ fail ArgumentError, 'vault_base_url is nil' if vault_base_url.nil?
192
+ fail ArgumentError, 'scope is nil' if scope.nil?
193
+ fail ArgumentError, 'role_definition_name is nil' if role_definition_name.nil?
194
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
195
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
196
+
197
+
198
+ request_headers = {}
199
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
200
+
201
+ # Set Headers
202
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
203
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
204
+
205
+ # Serialize Request
206
+ request_mapper = Azure::KeyVault::V7_2_preview::Models::RoleDefinitionCreateParameters.mapper()
207
+ request_content = @client.serialize(request_mapper, parameters)
208
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
209
+
210
+ path_template = '{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'
211
+
212
+ request_url = @base_url || @client.base_url
213
+ request_url = request_url.gsub('{vaultBaseUrl}', vault_base_url)
214
+
215
+ options = {
216
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
217
+ path_params: {'roleDefinitionName' => role_definition_name},
218
+ skip_encoding_path_params: {'scope' => scope},
219
+ query_params: {'api-version' => @client.api_version},
220
+ body: request_content,
221
+ headers: request_headers.merge(custom_headers || {}),
222
+ base_url: request_url
223
+ }
224
+ promise = @client.make_request_async(:put, path_template, options)
225
+
226
+ promise = promise.then do |result|
227
+ http_response = result.response
228
+ status_code = http_response.status
229
+ response_content = http_response.body
230
+ unless status_code == 201
231
+ error_model = JSON.load(response_content)
232
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
233
+ end
234
+
235
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
236
+ result.correlation_request_id = http_response['x-ms-correlation-request-id'] unless http_response['x-ms-correlation-request-id'].nil?
237
+ result.client_request_id = http_response['x-ms-client-request-id'] unless http_response['x-ms-client-request-id'].nil?
238
+ # Deserialize Response
239
+ if status_code == 201
240
+ begin
241
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
242
+ result_mapper = Azure::KeyVault::V7_2_preview::Models::RoleDefinition.mapper()
243
+ result.body = @client.deserialize(result_mapper, parsed_response)
244
+ rescue Exception => e
245
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
246
+ end
247
+ end
248
+
249
+ result
250
+ end
251
+
252
+ promise.execute
253
+ end
254
+
255
+ #
256
+ # Get the specified role definition.
257
+ #
258
+ # @param vault_base_url [String] The vault name, for example
259
+ # https://myvault.vault.azure.net.
260
+ # @param scope [String] The scope of the role definition to get. Managed HSM
261
+ # only supports '/'.
262
+ # @param role_definition_name [String] The name of the role definition to get.
263
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
264
+ # will be added to the HTTP request.
265
+ #
266
+ # @return [RoleDefinition] operation results.
267
+ #
268
+ def get(vault_base_url, scope, role_definition_name, custom_headers:nil)
269
+ response = get_async(vault_base_url, scope, role_definition_name, custom_headers:custom_headers).value!
270
+ response.body unless response.nil?
271
+ end
272
+
273
+ #
274
+ # Get the specified role definition.
275
+ #
276
+ # @param vault_base_url [String] The vault name, for example
277
+ # https://myvault.vault.azure.net.
278
+ # @param scope [String] The scope of the role definition to get. Managed HSM
279
+ # only supports '/'.
280
+ # @param role_definition_name [String] The name of the role definition to get.
281
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
282
+ # will be added to the HTTP request.
283
+ #
284
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
285
+ #
286
+ def get_with_http_info(vault_base_url, scope, role_definition_name, custom_headers:nil)
287
+ get_async(vault_base_url, scope, role_definition_name, custom_headers:custom_headers).value!
288
+ end
289
+
290
+ #
291
+ # Get the specified role definition.
292
+ #
293
+ # @param vault_base_url [String] The vault name, for example
294
+ # https://myvault.vault.azure.net.
295
+ # @param scope [String] The scope of the role definition to get. Managed HSM
296
+ # only supports '/'.
297
+ # @param role_definition_name [String] The name of the role definition to get.
298
+ # @param [Hash{String => String}] A hash of custom headers that will be added
299
+ # to the HTTP request.
300
+ #
301
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
302
+ #
303
+ def get_async(vault_base_url, scope, role_definition_name, custom_headers:nil)
304
+ fail ArgumentError, 'vault_base_url is nil' if vault_base_url.nil?
305
+ fail ArgumentError, 'scope is nil' if scope.nil?
306
+ fail ArgumentError, 'role_definition_name is nil' if role_definition_name.nil?
307
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
308
+
309
+
310
+ request_headers = {}
311
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
312
+
313
+ # Set Headers
314
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
315
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
316
+ path_template = '{scope}/providers/Microsoft.Authorization/roleDefinitions/{roleDefinitionName}'
317
+
318
+ request_url = @base_url || @client.base_url
319
+ request_url = request_url.gsub('{vaultBaseUrl}', vault_base_url)
320
+
321
+ options = {
322
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
323
+ path_params: {'roleDefinitionName' => role_definition_name},
324
+ skip_encoding_path_params: {'scope' => scope},
325
+ query_params: {'api-version' => @client.api_version},
326
+ headers: request_headers.merge(custom_headers || {}),
327
+ base_url: request_url
328
+ }
329
+ promise = @client.make_request_async(:get, path_template, options)
330
+
331
+ promise = promise.then do |result|
332
+ http_response = result.response
333
+ status_code = http_response.status
334
+ response_content = http_response.body
335
+ unless status_code == 200
336
+ error_model = JSON.load(response_content)
337
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
338
+ end
339
+
340
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
341
+ result.correlation_request_id = http_response['x-ms-correlation-request-id'] unless http_response['x-ms-correlation-request-id'].nil?
342
+ result.client_request_id = http_response['x-ms-client-request-id'] unless http_response['x-ms-client-request-id'].nil?
343
+ # Deserialize Response
344
+ if status_code == 200
345
+ begin
346
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
347
+ result_mapper = Azure::KeyVault::V7_2_preview::Models::RoleDefinition.mapper()
348
+ result.body = @client.deserialize(result_mapper, parsed_response)
349
+ rescue Exception => e
350
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
351
+ end
352
+ end
353
+
354
+ result
355
+ end
356
+
357
+ promise.execute
358
+ end
359
+
25
360
  #
26
361
  # Get all role definitions that are applicable at scope and above.
27
362
  #