azure_mgmt_traffic_manager 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (85) hide show
  1. checksums.yaml +4 -4
  2. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager.rb +37 -0
  3. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/endpoints.rb +482 -0
  4. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/models/check_traffic_manager_relative_dns_name_availability_parameters.rb +55 -0
  5. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/models/dns_config.rb +71 -0
  6. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/models/endpoint.rb +161 -0
  7. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/models/monitor_config.rb +79 -0
  8. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/models/profile.rb +145 -0
  9. data/lib/{generated → 2015-11-01/generated}/azure_mgmt_traffic_manager/models/profile_list_result.rb +1 -1
  10. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/models/resource.rb +95 -0
  11. data/lib/{generated → 2015-11-01/generated}/azure_mgmt_traffic_manager/models/traffic_manager_name_availability.rb +1 -1
  12. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/module_definition.rb +9 -0
  13. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/profiles.rb +708 -0
  14. data/lib/2015-11-01/generated/azure_mgmt_traffic_manager/traffic_manager_management_client.rb +135 -0
  15. data/lib/{generated → 2015-11-01/generated}/azure_mgmt_traffic_manager/version.rb +2 -2
  16. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager.rb +41 -0
  17. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/endpoints.rb +503 -0
  18. data/lib/{generated → 2017-03-01/generated}/azure_mgmt_traffic_manager/geographic_hierarchies.rb +4 -4
  19. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/check_traffic_manager_relative_dns_name_availability_parameters.rb +55 -0
  20. data/lib/{generated → 2017-03-01/generated}/azure_mgmt_traffic_manager/models/delete_operation_result.rb +1 -1
  21. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/dns_config.rb +71 -0
  22. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/endpoint.rb +181 -0
  23. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/monitor_config.rb +79 -0
  24. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/profile.rb +145 -0
  25. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/profile_list_result.rb +52 -0
  26. data/lib/{generated → 2017-03-01/generated}/azure_mgmt_traffic_manager/models/region.rb +1 -1
  27. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/resource.rb +94 -0
  28. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/traffic_manager_geographic_hierarchy.rb +92 -0
  29. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/models/traffic_manager_name_availability.rb +87 -0
  30. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/module_definition.rb +9 -0
  31. data/lib/2017-03-01/generated/azure_mgmt_traffic_manager/profiles.rb +729 -0
  32. data/lib/{generated → 2017-03-01/generated}/azure_mgmt_traffic_manager/traffic_manager_management_client.rb +7 -11
  33. data/lib/{generated/azure_mgmt_traffic_manager/module_definition.rb → 2017-03-01/generated/azure_mgmt_traffic_manager/version.rb} +3 -3
  34. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager.rb +50 -0
  35. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/endpoints.rb +16 -16
  36. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/geographic_hierarchies.rb +109 -0
  37. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/check_traffic_manager_relative_dns_name_availability_parameters.rb +1 -1
  38. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/models/delete_operation_result.rb +45 -0
  39. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/dns_config.rb +1 -1
  40. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/endpoint.rb +1 -1
  41. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/endpoint_monitor_status.rb +1 -1
  42. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/endpoint_status.rb +1 -1
  43. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/monitor_config.rb +1 -1
  44. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/monitor_protocol.rb +1 -1
  45. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/profile.rb +1 -1
  46. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/models/profile_list_result.rb +52 -0
  47. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/profile_monitor_status.rb +1 -1
  48. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/profile_status.rb +1 -1
  49. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/proxy_resource.rb +1 -1
  50. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/models/region.rb +74 -0
  51. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/resource.rb +1 -1
  52. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/tracked_resource.rb +1 -1
  53. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/traffic_manager_geographic_hierarchy.rb +1 -1
  54. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/models/traffic_manager_name_availability.rb +87 -0
  55. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/traffic_manager_user_metrics_key_model.rb +1 -1
  56. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/models/traffic_routing_method.rb +1 -1
  57. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/module_definition.rb +9 -0
  58. data/lib/{generated → 2017-05-01/generated}/azure_mgmt_traffic_manager/profiles.rb +26 -26
  59. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/traffic_manager_management_client.rb +139 -0
  60. data/lib/2017-05-01/generated/azure_mgmt_traffic_manager/version.rb +8 -0
  61. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager.rb +38 -0
  62. data/lib/{generated → 2017-09-01-preview/generated}/azure_mgmt_traffic_manager/heat_map.rb +4 -4
  63. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/models/delete_operation_result.rb +45 -0
  64. data/lib/{generated → 2017-09-01-preview/generated}/azure_mgmt_traffic_manager/models/heat_map_endpoint.rb +1 -1
  65. data/lib/{generated → 2017-09-01-preview/generated}/azure_mgmt_traffic_manager/models/heat_map_model.rb +1 -1
  66. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/models/proxy_resource.rb +59 -0
  67. data/lib/{generated → 2017-09-01-preview/generated}/azure_mgmt_traffic_manager/models/query_experience.rb +1 -1
  68. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/models/resource.rb +69 -0
  69. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/models/tracked_resource.rb +85 -0
  70. data/lib/{generated → 2017-09-01-preview/generated}/azure_mgmt_traffic_manager/models/traffic_flow.rb +1 -1
  71. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/models/traffic_manager_user_metrics_key_model.rb +69 -0
  72. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/module_definition.rb +9 -0
  73. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/traffic_manager_management_client.rb +135 -0
  74. data/lib/{generated → 2017-09-01-preview/generated}/azure_mgmt_traffic_manager/traffic_manager_user_metrics_keys.rb +10 -10
  75. data/lib/2017-09-01-preview/generated/azure_mgmt_traffic_manager/version.rb +8 -0
  76. data/lib/azure_mgmt_traffic_manager.rb +5 -1
  77. data/lib/module_definition.rb +9 -0
  78. data/lib/profiles/common/configurable.rb +73 -0
  79. data/lib/profiles/common/default.rb +68 -0
  80. data/lib/profiles/latest/modules/trafficmanager_profile_module.rb +151 -0
  81. data/lib/profiles/latest/trafficmanager_latest_profile_client.rb +33 -0
  82. data/lib/profiles/latest/trafficmanager_module_definition.rb +9 -0
  83. data/lib/version.rb +7 -0
  84. metadata +83 -35
  85. data/lib/generated/azure_mgmt_traffic_manager.rb +0 -56
@@ -0,0 +1,52 @@
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::TrafficManager::Mgmt::V2017_03_01
7
+ module Models
8
+ #
9
+ # The list Traffic Manager profiles operation response.
10
+ #
11
+ class ProfileListResult
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Array<Profile>] Gets the list of Traffic manager profiles.
16
+ attr_accessor :value
17
+
18
+
19
+ #
20
+ # Mapper for ProfileListResult class as Ruby Hash.
21
+ # This will be used for serialization/deserialization.
22
+ #
23
+ def self.mapper()
24
+ {
25
+ required: false,
26
+ serialized_name: 'ProfileListResult',
27
+ type: {
28
+ name: 'Composite',
29
+ class_name: 'ProfileListResult',
30
+ model_properties: {
31
+ value: {
32
+ required: false,
33
+ serialized_name: 'value',
34
+ type: {
35
+ name: 'Sequence',
36
+ element: {
37
+ required: false,
38
+ serialized_name: 'ProfileElementType',
39
+ type: {
40
+ name: 'Composite',
41
+ class_name: 'Profile'
42
+ }
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+ }
49
+ end
50
+ end
51
+ end
52
+ end
@@ -3,7 +3,7 @@
3
3
  # Changes may cause incorrect behavior and will be lost if the code is
4
4
  # regenerated.
5
5
 
6
- module Azure::ARM::TrafficManager
6
+ module Azure::TrafficManager::Mgmt::V2017_03_01
7
7
  module Models
8
8
  #
9
9
  # Class representing a region in the Geographic hierarchy used with the
@@ -0,0 +1,94 @@
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::TrafficManager::Mgmt::V2017_03_01
7
+ module Models
8
+ #
9
+ # The Resource model definition.
10
+ #
11
+ class Resource
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] Resource Id
16
+ attr_accessor :id
17
+
18
+ # @return [String] Resource name
19
+ attr_accessor :name
20
+
21
+ # @return [String] Resource type
22
+ attr_accessor :type
23
+
24
+ # @return [String] Resource location
25
+ attr_accessor :location
26
+
27
+ # @return [Hash{String => String}] Resource tags
28
+ attr_accessor :tags
29
+
30
+
31
+ #
32
+ # Mapper for Resource class as Ruby Hash.
33
+ # This will be used for serialization/deserialization.
34
+ #
35
+ def self.mapper()
36
+ {
37
+ required: false,
38
+ serialized_name: 'Resource',
39
+ type: {
40
+ name: 'Composite',
41
+ class_name: 'Resource',
42
+ model_properties: {
43
+ id: {
44
+ required: false,
45
+ read_only: true,
46
+ serialized_name: 'id',
47
+ type: {
48
+ name: 'String'
49
+ }
50
+ },
51
+ name: {
52
+ required: false,
53
+ read_only: true,
54
+ serialized_name: 'name',
55
+ type: {
56
+ name: 'String'
57
+ }
58
+ },
59
+ type: {
60
+ required: false,
61
+ read_only: true,
62
+ serialized_name: 'type',
63
+ type: {
64
+ name: 'String'
65
+ }
66
+ },
67
+ location: {
68
+ required: false,
69
+ serialized_name: 'location',
70
+ type: {
71
+ name: 'String'
72
+ }
73
+ },
74
+ tags: {
75
+ required: false,
76
+ serialized_name: 'tags',
77
+ type: {
78
+ name: 'Dictionary',
79
+ value: {
80
+ required: false,
81
+ serialized_name: 'StringElementType',
82
+ type: {
83
+ name: 'String'
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,92 @@
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::TrafficManager::Mgmt::V2017_03_01
7
+ module Models
8
+ #
9
+ # Class representing the Geographic hierarchy used with the Geographic
10
+ # traffic routing method.
11
+ #
12
+ class TrafficManagerGeographicHierarchy < Resource
13
+
14
+ include MsRestAzure
15
+
16
+ # @return [Region] The region at the root of the hierarchy from all the
17
+ # regions in the hierarchy can be retrieved.
18
+ attr_accessor :geographic_hierarchy
19
+
20
+
21
+ #
22
+ # Mapper for TrafficManagerGeographicHierarchy class as Ruby Hash.
23
+ # This will be used for serialization/deserialization.
24
+ #
25
+ def self.mapper()
26
+ {
27
+ required: false,
28
+ serialized_name: 'TrafficManagerGeographicHierarchy',
29
+ type: {
30
+ name: 'Composite',
31
+ class_name: 'TrafficManagerGeographicHierarchy',
32
+ model_properties: {
33
+ id: {
34
+ required: false,
35
+ read_only: true,
36
+ serialized_name: 'id',
37
+ type: {
38
+ name: 'String'
39
+ }
40
+ },
41
+ name: {
42
+ required: false,
43
+ read_only: true,
44
+ serialized_name: 'name',
45
+ type: {
46
+ name: 'String'
47
+ }
48
+ },
49
+ type: {
50
+ required: false,
51
+ read_only: true,
52
+ serialized_name: 'type',
53
+ type: {
54
+ name: 'String'
55
+ }
56
+ },
57
+ location: {
58
+ required: false,
59
+ serialized_name: 'location',
60
+ type: {
61
+ name: 'String'
62
+ }
63
+ },
64
+ tags: {
65
+ required: false,
66
+ serialized_name: 'tags',
67
+ type: {
68
+ name: 'Dictionary',
69
+ value: {
70
+ required: false,
71
+ serialized_name: 'StringElementType',
72
+ type: {
73
+ name: 'String'
74
+ }
75
+ }
76
+ }
77
+ },
78
+ geographic_hierarchy: {
79
+ required: false,
80
+ serialized_name: 'properties.geographicHierarchy',
81
+ type: {
82
+ name: 'Composite',
83
+ class_name: 'Region'
84
+ }
85
+ }
86
+ }
87
+ }
88
+ }
89
+ end
90
+ end
91
+ end
92
+ end
@@ -0,0 +1,87 @@
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::TrafficManager::Mgmt::V2017_03_01
7
+ module Models
8
+ #
9
+ # Class representing a Traffic Manager Name Availability response.
10
+ #
11
+ class TrafficManagerNameAvailability
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [String] The relative name.
16
+ attr_accessor :name
17
+
18
+ # @return [String] Traffic Manager profile resource type.
19
+ attr_accessor :type
20
+
21
+ # @return [Boolean] Describes whether the relative name is available or
22
+ # not.
23
+ attr_accessor :name_available
24
+
25
+ # @return [String] The reason why the name is not available, when
26
+ # applicable.
27
+ attr_accessor :reason
28
+
29
+ # @return [String] Descriptive message that explains why the name is not
30
+ # available, when applicable.
31
+ attr_accessor :message
32
+
33
+
34
+ #
35
+ # Mapper for TrafficManagerNameAvailability class as Ruby Hash.
36
+ # This will be used for serialization/deserialization.
37
+ #
38
+ def self.mapper()
39
+ {
40
+ required: false,
41
+ serialized_name: 'TrafficManagerNameAvailability',
42
+ type: {
43
+ name: 'Composite',
44
+ class_name: 'TrafficManagerNameAvailability',
45
+ model_properties: {
46
+ name: {
47
+ required: false,
48
+ serialized_name: 'name',
49
+ type: {
50
+ name: 'String'
51
+ }
52
+ },
53
+ type: {
54
+ required: false,
55
+ serialized_name: 'type',
56
+ type: {
57
+ name: 'String'
58
+ }
59
+ },
60
+ name_available: {
61
+ required: false,
62
+ serialized_name: 'nameAvailable',
63
+ type: {
64
+ name: 'Boolean'
65
+ }
66
+ },
67
+ reason: {
68
+ required: false,
69
+ serialized_name: 'reason',
70
+ type: {
71
+ name: 'String'
72
+ }
73
+ },
74
+ message: {
75
+ required: false,
76
+ serialized_name: 'message',
77
+ type: {
78
+ name: 'String'
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
84
+ end
85
+ end
86
+ end
87
+ end
@@ -0,0 +1,9 @@
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 end
7
+ module Azure::TrafficManager end
8
+ module Azure::TrafficManager::Mgmt end
9
+ module Azure::TrafficManager::Mgmt::V2017_03_01 end
@@ -0,0 +1,729 @@
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::TrafficManager::Mgmt::V2017_03_01
7
+ #
8
+ # Profiles
9
+ #
10
+ class Profiles
11
+ include MsRestAzure
12
+
13
+ #
14
+ # Creates and initializes a new instance of the Profiles class.
15
+ # @param client service class for accessing basic functionality.
16
+ #
17
+ def initialize(client)
18
+ @client = client
19
+ end
20
+
21
+ # @return [TrafficManagerManagementClient] reference to the TrafficManagerManagementClient
22
+ attr_reader :client
23
+
24
+ #
25
+ # Checks the availability of a Traffic Manager Relative DNS name.
26
+ #
27
+ # @param parameters [CheckTrafficManagerRelativeDnsNameAvailabilityParameters]
28
+ # The Traffic Manager name parameters supplied to the
29
+ # CheckTrafficManagerNameAvailability operation.
30
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
31
+ # will be added to the HTTP request.
32
+ #
33
+ # @return [TrafficManagerNameAvailability] operation results.
34
+ #
35
+ def check_traffic_manager_relative_dns_name_availability(parameters, custom_headers = nil)
36
+ response = check_traffic_manager_relative_dns_name_availability_async(parameters, custom_headers).value!
37
+ response.body unless response.nil?
38
+ end
39
+
40
+ #
41
+ # Checks the availability of a Traffic Manager Relative DNS name.
42
+ #
43
+ # @param parameters [CheckTrafficManagerRelativeDnsNameAvailabilityParameters]
44
+ # The Traffic Manager name parameters supplied to the
45
+ # CheckTrafficManagerNameAvailability operation.
46
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
47
+ # will be added to the HTTP request.
48
+ #
49
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
50
+ #
51
+ def check_traffic_manager_relative_dns_name_availability_with_http_info(parameters, custom_headers = nil)
52
+ check_traffic_manager_relative_dns_name_availability_async(parameters, custom_headers).value!
53
+ end
54
+
55
+ #
56
+ # Checks the availability of a Traffic Manager Relative DNS name.
57
+ #
58
+ # @param parameters [CheckTrafficManagerRelativeDnsNameAvailabilityParameters]
59
+ # The Traffic Manager name parameters supplied to the
60
+ # CheckTrafficManagerNameAvailability operation.
61
+ # @param [Hash{String => String}] A hash of custom headers that will be added
62
+ # to the HTTP request.
63
+ #
64
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
65
+ #
66
+ def check_traffic_manager_relative_dns_name_availability_async(parameters, custom_headers = nil)
67
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
68
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
69
+
70
+
71
+ request_headers = {}
72
+
73
+ # Set Headers
74
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
75
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
76
+
77
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
78
+
79
+ # Serialize Request
80
+ request_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::CheckTrafficManagerRelativeDnsNameAvailabilityParameters.mapper()
81
+ request_content = @client.serialize(request_mapper, parameters)
82
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
83
+
84
+ path_template = 'providers/Microsoft.Network/checkTrafficManagerNameAvailability'
85
+
86
+ request_url = @base_url || @client.base_url
87
+
88
+ options = {
89
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
90
+ query_params: {'api-version' => @client.api_version},
91
+ body: request_content,
92
+ headers: request_headers.merge(custom_headers || {}),
93
+ base_url: request_url
94
+ }
95
+ promise = @client.make_request_async(:post, path_template, options)
96
+
97
+ promise = promise.then do |result|
98
+ http_response = result.response
99
+ status_code = http_response.status
100
+ response_content = http_response.body
101
+ unless status_code == 200
102
+ error_model = JSON.load(response_content)
103
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
104
+ end
105
+
106
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
107
+ # Deserialize Response
108
+ if status_code == 200
109
+ begin
110
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
111
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::TrafficManagerNameAvailability.mapper()
112
+ result.body = @client.deserialize(result_mapper, parsed_response)
113
+ rescue Exception => e
114
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
115
+ end
116
+ end
117
+
118
+ result
119
+ end
120
+
121
+ promise.execute
122
+ end
123
+
124
+ #
125
+ # Lists all Traffic Manager profiles within a resource group.
126
+ #
127
+ # @param resource_group_name [String] The name of the resource group containing
128
+ # the Traffic Manager profiles to be listed.
129
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
130
+ # will be added to the HTTP request.
131
+ #
132
+ # @return [ProfileListResult] operation results.
133
+ #
134
+ def list_all_in_resource_group(resource_group_name, custom_headers = nil)
135
+ response = list_all_in_resource_group_async(resource_group_name, custom_headers).value!
136
+ response.body unless response.nil?
137
+ end
138
+
139
+ #
140
+ # Lists all Traffic Manager profiles within a resource group.
141
+ #
142
+ # @param resource_group_name [String] The name of the resource group containing
143
+ # the Traffic Manager profiles to be listed.
144
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
145
+ # will be added to the HTTP request.
146
+ #
147
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
148
+ #
149
+ def list_all_in_resource_group_with_http_info(resource_group_name, custom_headers = nil)
150
+ list_all_in_resource_group_async(resource_group_name, custom_headers).value!
151
+ end
152
+
153
+ #
154
+ # Lists all Traffic Manager profiles within a resource group.
155
+ #
156
+ # @param resource_group_name [String] The name of the resource group containing
157
+ # the Traffic Manager profiles to be listed.
158
+ # @param [Hash{String => String}] A hash of custom headers that will be added
159
+ # to the HTTP request.
160
+ #
161
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
162
+ #
163
+ def list_all_in_resource_group_async(resource_group_name, custom_headers = nil)
164
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
165
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
166
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
167
+
168
+
169
+ request_headers = {}
170
+
171
+ # Set Headers
172
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
173
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
174
+ path_template = 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles'
175
+
176
+ request_url = @base_url || @client.base_url
177
+
178
+ options = {
179
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
180
+ path_params: {'resourceGroupName' => resource_group_name,'subscriptionId' => @client.subscription_id},
181
+ query_params: {'api-version' => @client.api_version},
182
+ headers: request_headers.merge(custom_headers || {}),
183
+ base_url: request_url
184
+ }
185
+ promise = @client.make_request_async(:get, path_template, options)
186
+
187
+ promise = promise.then do |result|
188
+ http_response = result.response
189
+ status_code = http_response.status
190
+ response_content = http_response.body
191
+ unless status_code == 200
192
+ error_model = JSON.load(response_content)
193
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
194
+ end
195
+
196
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
197
+ # Deserialize Response
198
+ if status_code == 200
199
+ begin
200
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
201
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::ProfileListResult.mapper()
202
+ result.body = @client.deserialize(result_mapper, parsed_response)
203
+ rescue Exception => e
204
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
205
+ end
206
+ end
207
+
208
+ result
209
+ end
210
+
211
+ promise.execute
212
+ end
213
+
214
+ #
215
+ # Lists all Traffic Manager profiles within a subscription.
216
+ #
217
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
218
+ # will be added to the HTTP request.
219
+ #
220
+ # @return [ProfileListResult] operation results.
221
+ #
222
+ def list_all(custom_headers = nil)
223
+ response = list_all_async(custom_headers).value!
224
+ response.body unless response.nil?
225
+ end
226
+
227
+ #
228
+ # Lists all Traffic Manager profiles within a subscription.
229
+ #
230
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
231
+ # will be added to the HTTP request.
232
+ #
233
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
234
+ #
235
+ def list_all_with_http_info(custom_headers = nil)
236
+ list_all_async(custom_headers).value!
237
+ end
238
+
239
+ #
240
+ # Lists all Traffic Manager profiles within a subscription.
241
+ #
242
+ # @param [Hash{String => String}] A hash of custom headers that will be added
243
+ # to the HTTP request.
244
+ #
245
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
246
+ #
247
+ def list_all_async(custom_headers = nil)
248
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
249
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
250
+
251
+
252
+ request_headers = {}
253
+
254
+ # Set Headers
255
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
256
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
257
+ path_template = 'subscriptions/{subscriptionId}/providers/Microsoft.Network/trafficmanagerprofiles'
258
+
259
+ request_url = @base_url || @client.base_url
260
+
261
+ options = {
262
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
263
+ path_params: {'subscriptionId' => @client.subscription_id},
264
+ query_params: {'api-version' => @client.api_version},
265
+ headers: request_headers.merge(custom_headers || {}),
266
+ base_url: request_url
267
+ }
268
+ promise = @client.make_request_async(:get, path_template, options)
269
+
270
+ promise = promise.then do |result|
271
+ http_response = result.response
272
+ status_code = http_response.status
273
+ response_content = http_response.body
274
+ unless status_code == 200
275
+ error_model = JSON.load(response_content)
276
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
277
+ end
278
+
279
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
280
+ # Deserialize Response
281
+ if status_code == 200
282
+ begin
283
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
284
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::ProfileListResult.mapper()
285
+ result.body = @client.deserialize(result_mapper, parsed_response)
286
+ rescue Exception => e
287
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
288
+ end
289
+ end
290
+
291
+ result
292
+ end
293
+
294
+ promise.execute
295
+ end
296
+
297
+ #
298
+ # Gets a Traffic Manager profile.
299
+ #
300
+ # @param resource_group_name [String] The name of the resource group containing
301
+ # the Traffic Manager profile.
302
+ # @param profile_name [String] The name of the Traffic Manager profile.
303
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
304
+ # will be added to the HTTP request.
305
+ #
306
+ # @return [Profile] operation results.
307
+ #
308
+ def get(resource_group_name, profile_name, custom_headers = nil)
309
+ response = get_async(resource_group_name, profile_name, custom_headers).value!
310
+ response.body unless response.nil?
311
+ end
312
+
313
+ #
314
+ # Gets a Traffic Manager profile.
315
+ #
316
+ # @param resource_group_name [String] The name of the resource group containing
317
+ # the Traffic Manager profile.
318
+ # @param profile_name [String] The name of the Traffic Manager profile.
319
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
320
+ # will be added to the HTTP request.
321
+ #
322
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
323
+ #
324
+ def get_with_http_info(resource_group_name, profile_name, custom_headers = nil)
325
+ get_async(resource_group_name, profile_name, custom_headers).value!
326
+ end
327
+
328
+ #
329
+ # Gets a Traffic Manager profile.
330
+ #
331
+ # @param resource_group_name [String] The name of the resource group containing
332
+ # the Traffic Manager profile.
333
+ # @param profile_name [String] The name of the Traffic Manager profile.
334
+ # @param [Hash{String => String}] A hash of custom headers that will be added
335
+ # to the HTTP request.
336
+ #
337
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
338
+ #
339
+ def get_async(resource_group_name, profile_name, custom_headers = nil)
340
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
341
+ fail ArgumentError, 'profile_name is nil' if profile_name.nil?
342
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
343
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
344
+
345
+
346
+ request_headers = {}
347
+
348
+ # Set Headers
349
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
350
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
351
+ path_template = 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles/{profileName}'
352
+
353
+ request_url = @base_url || @client.base_url
354
+
355
+ options = {
356
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
357
+ path_params: {'resourceGroupName' => resource_group_name,'profileName' => profile_name,'subscriptionId' => @client.subscription_id},
358
+ query_params: {'api-version' => @client.api_version},
359
+ headers: request_headers.merge(custom_headers || {}),
360
+ base_url: request_url
361
+ }
362
+ promise = @client.make_request_async(:get, path_template, options)
363
+
364
+ promise = promise.then do |result|
365
+ http_response = result.response
366
+ status_code = http_response.status
367
+ response_content = http_response.body
368
+ unless status_code == 200
369
+ error_model = JSON.load(response_content)
370
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
371
+ end
372
+
373
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
374
+ # Deserialize Response
375
+ if status_code == 200
376
+ begin
377
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
378
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::Profile.mapper()
379
+ result.body = @client.deserialize(result_mapper, parsed_response)
380
+ rescue Exception => e
381
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
382
+ end
383
+ end
384
+
385
+ result
386
+ end
387
+
388
+ promise.execute
389
+ end
390
+
391
+ #
392
+ # Create or update a Traffic Manager profile.
393
+ #
394
+ # @param resource_group_name [String] The name of the resource group containing
395
+ # the Traffic Manager profile.
396
+ # @param profile_name [String] The name of the Traffic Manager profile.
397
+ # @param parameters [Profile] The Traffic Manager profile parameters supplied
398
+ # to the CreateOrUpdate operation.
399
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
400
+ # will be added to the HTTP request.
401
+ #
402
+ # @return [Profile] operation results.
403
+ #
404
+ def create_or_update(resource_group_name, profile_name, parameters, custom_headers = nil)
405
+ response = create_or_update_async(resource_group_name, profile_name, parameters, custom_headers).value!
406
+ response.body unless response.nil?
407
+ end
408
+
409
+ #
410
+ # Create or update a Traffic Manager profile.
411
+ #
412
+ # @param resource_group_name [String] The name of the resource group containing
413
+ # the Traffic Manager profile.
414
+ # @param profile_name [String] The name of the Traffic Manager profile.
415
+ # @param parameters [Profile] The Traffic Manager profile parameters supplied
416
+ # to the CreateOrUpdate operation.
417
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
418
+ # will be added to the HTTP request.
419
+ #
420
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
421
+ #
422
+ def create_or_update_with_http_info(resource_group_name, profile_name, parameters, custom_headers = nil)
423
+ create_or_update_async(resource_group_name, profile_name, parameters, custom_headers).value!
424
+ end
425
+
426
+ #
427
+ # Create or update a Traffic Manager profile.
428
+ #
429
+ # @param resource_group_name [String] The name of the resource group containing
430
+ # the Traffic Manager profile.
431
+ # @param profile_name [String] The name of the Traffic Manager profile.
432
+ # @param parameters [Profile] The Traffic Manager profile parameters supplied
433
+ # to the CreateOrUpdate operation.
434
+ # @param [Hash{String => String}] A hash of custom headers that will be added
435
+ # to the HTTP request.
436
+ #
437
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
438
+ #
439
+ def create_or_update_async(resource_group_name, profile_name, parameters, custom_headers = nil)
440
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
441
+ fail ArgumentError, 'profile_name is nil' if profile_name.nil?
442
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
443
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
444
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
445
+
446
+
447
+ request_headers = {}
448
+
449
+ # Set Headers
450
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
451
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
452
+
453
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
454
+
455
+ # Serialize Request
456
+ request_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::Profile.mapper()
457
+ request_content = @client.serialize(request_mapper, parameters)
458
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
459
+
460
+ path_template = 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles/{profileName}'
461
+
462
+ request_url = @base_url || @client.base_url
463
+
464
+ options = {
465
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
466
+ path_params: {'resourceGroupName' => resource_group_name,'profileName' => profile_name,'subscriptionId' => @client.subscription_id},
467
+ query_params: {'api-version' => @client.api_version},
468
+ body: request_content,
469
+ headers: request_headers.merge(custom_headers || {}),
470
+ base_url: request_url
471
+ }
472
+ promise = @client.make_request_async(:put, path_template, options)
473
+
474
+ promise = promise.then do |result|
475
+ http_response = result.response
476
+ status_code = http_response.status
477
+ response_content = http_response.body
478
+ unless status_code == 200 || status_code == 201
479
+ error_model = JSON.load(response_content)
480
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
481
+ end
482
+
483
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
484
+ # Deserialize Response
485
+ if status_code == 200
486
+ begin
487
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
488
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::Profile.mapper()
489
+ result.body = @client.deserialize(result_mapper, parsed_response)
490
+ rescue Exception => e
491
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
492
+ end
493
+ end
494
+ # Deserialize Response
495
+ if status_code == 201
496
+ begin
497
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
498
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::Profile.mapper()
499
+ result.body = @client.deserialize(result_mapper, parsed_response)
500
+ rescue Exception => e
501
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
502
+ end
503
+ end
504
+
505
+ result
506
+ end
507
+
508
+ promise.execute
509
+ end
510
+
511
+ #
512
+ # Deletes a Traffic Manager profile.
513
+ #
514
+ # @param resource_group_name [String] The name of the resource group containing
515
+ # the Traffic Manager profile to be deleted.
516
+ # @param profile_name [String] The name of the Traffic Manager profile to be
517
+ # deleted.
518
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
519
+ # will be added to the HTTP request.
520
+ #
521
+ # @return [DeleteOperationResult] operation results.
522
+ #
523
+ def delete(resource_group_name, profile_name, custom_headers = nil)
524
+ response = delete_async(resource_group_name, profile_name, custom_headers).value!
525
+ response.body unless response.nil?
526
+ end
527
+
528
+ #
529
+ # Deletes a Traffic Manager profile.
530
+ #
531
+ # @param resource_group_name [String] The name of the resource group containing
532
+ # the Traffic Manager profile to be deleted.
533
+ # @param profile_name [String] The name of the Traffic Manager profile to be
534
+ # deleted.
535
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
536
+ # will be added to the HTTP request.
537
+ #
538
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
539
+ #
540
+ def delete_with_http_info(resource_group_name, profile_name, custom_headers = nil)
541
+ delete_async(resource_group_name, profile_name, custom_headers).value!
542
+ end
543
+
544
+ #
545
+ # Deletes a Traffic Manager profile.
546
+ #
547
+ # @param resource_group_name [String] The name of the resource group containing
548
+ # the Traffic Manager profile to be deleted.
549
+ # @param profile_name [String] The name of the Traffic Manager profile to be
550
+ # deleted.
551
+ # @param [Hash{String => String}] A hash of custom headers that will be added
552
+ # to the HTTP request.
553
+ #
554
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
555
+ #
556
+ def delete_async(resource_group_name, profile_name, custom_headers = nil)
557
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
558
+ fail ArgumentError, 'profile_name is nil' if profile_name.nil?
559
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
560
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
561
+
562
+
563
+ request_headers = {}
564
+
565
+ # Set Headers
566
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
567
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
568
+ path_template = 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles/{profileName}'
569
+
570
+ request_url = @base_url || @client.base_url
571
+
572
+ options = {
573
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
574
+ path_params: {'resourceGroupName' => resource_group_name,'profileName' => profile_name,'subscriptionId' => @client.subscription_id},
575
+ query_params: {'api-version' => @client.api_version},
576
+ headers: request_headers.merge(custom_headers || {}),
577
+ base_url: request_url
578
+ }
579
+ promise = @client.make_request_async(:delete, path_template, options)
580
+
581
+ promise = promise.then do |result|
582
+ http_response = result.response
583
+ status_code = http_response.status
584
+ response_content = http_response.body
585
+ unless status_code == 200 || status_code == 204
586
+ error_model = JSON.load(response_content)
587
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
588
+ end
589
+
590
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
591
+ # Deserialize Response
592
+ if status_code == 200
593
+ begin
594
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
595
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::DeleteOperationResult.mapper()
596
+ result.body = @client.deserialize(result_mapper, parsed_response)
597
+ rescue Exception => e
598
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
599
+ end
600
+ end
601
+ # Deserialize Response
602
+ if status_code == 204
603
+ begin
604
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
605
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::DeleteOperationResult.mapper()
606
+ result.body = @client.deserialize(result_mapper, parsed_response)
607
+ rescue Exception => e
608
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
609
+ end
610
+ end
611
+
612
+ result
613
+ end
614
+
615
+ promise.execute
616
+ end
617
+
618
+ #
619
+ # Update a Traffic Manager profile.
620
+ #
621
+ # @param resource_group_name [String] The name of the resource group containing
622
+ # the Traffic Manager profile.
623
+ # @param profile_name [String] The name of the Traffic Manager profile.
624
+ # @param parameters [Profile] The Traffic Manager profile parameters supplied
625
+ # to the Update operation.
626
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
627
+ # will be added to the HTTP request.
628
+ #
629
+ # @return [Profile] operation results.
630
+ #
631
+ def update(resource_group_name, profile_name, parameters, custom_headers = nil)
632
+ response = update_async(resource_group_name, profile_name, parameters, custom_headers).value!
633
+ response.body unless response.nil?
634
+ end
635
+
636
+ #
637
+ # Update a Traffic Manager profile.
638
+ #
639
+ # @param resource_group_name [String] The name of the resource group containing
640
+ # the Traffic Manager profile.
641
+ # @param profile_name [String] The name of the Traffic Manager profile.
642
+ # @param parameters [Profile] The Traffic Manager profile parameters supplied
643
+ # to the Update operation.
644
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
645
+ # will be added to the HTTP request.
646
+ #
647
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
648
+ #
649
+ def update_with_http_info(resource_group_name, profile_name, parameters, custom_headers = nil)
650
+ update_async(resource_group_name, profile_name, parameters, custom_headers).value!
651
+ end
652
+
653
+ #
654
+ # Update a Traffic Manager profile.
655
+ #
656
+ # @param resource_group_name [String] The name of the resource group containing
657
+ # the Traffic Manager profile.
658
+ # @param profile_name [String] The name of the Traffic Manager profile.
659
+ # @param parameters [Profile] The Traffic Manager profile parameters supplied
660
+ # to the Update operation.
661
+ # @param [Hash{String => String}] A hash of custom headers that will be added
662
+ # to the HTTP request.
663
+ #
664
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
665
+ #
666
+ def update_async(resource_group_name, profile_name, parameters, custom_headers = nil)
667
+ fail ArgumentError, 'resource_group_name is nil' if resource_group_name.nil?
668
+ fail ArgumentError, 'profile_name is nil' if profile_name.nil?
669
+ fail ArgumentError, 'parameters is nil' if parameters.nil?
670
+ fail ArgumentError, '@client.api_version is nil' if @client.api_version.nil?
671
+ fail ArgumentError, '@client.subscription_id is nil' if @client.subscription_id.nil?
672
+
673
+
674
+ request_headers = {}
675
+
676
+ # Set Headers
677
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
678
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
679
+
680
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
681
+
682
+ # Serialize Request
683
+ request_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::Profile.mapper()
684
+ request_content = @client.serialize(request_mapper, parameters)
685
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
686
+
687
+ path_template = 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/trafficmanagerprofiles/{profileName}'
688
+
689
+ request_url = @base_url || @client.base_url
690
+
691
+ options = {
692
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
693
+ path_params: {'resourceGroupName' => resource_group_name,'profileName' => profile_name,'subscriptionId' => @client.subscription_id},
694
+ query_params: {'api-version' => @client.api_version},
695
+ body: request_content,
696
+ headers: request_headers.merge(custom_headers || {}),
697
+ base_url: request_url
698
+ }
699
+ promise = @client.make_request_async(:patch, path_template, options)
700
+
701
+ promise = promise.then do |result|
702
+ http_response = result.response
703
+ status_code = http_response.status
704
+ response_content = http_response.body
705
+ unless status_code == 200
706
+ error_model = JSON.load(response_content)
707
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
708
+ end
709
+
710
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
711
+ # Deserialize Response
712
+ if status_code == 200
713
+ begin
714
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
715
+ result_mapper = Azure::TrafficManager::Mgmt::V2017_03_01::Models::Profile.mapper()
716
+ result.body = @client.deserialize(result_mapper, parsed_response)
717
+ rescue Exception => e
718
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
719
+ end
720
+ end
721
+
722
+ result
723
+ end
724
+
725
+ promise.execute
726
+ end
727
+
728
+ end
729
+ end