azure_key_vault 0.18.1 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
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
  #