azure_cognitiveservices_face 0.16.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 (63) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/lib/1.0/generated/azure_cognitiveservices_face.rb +78 -0
  4. data/lib/1.0/generated/azure_cognitiveservices_face/face.rb +955 -0
  5. data/lib/1.0/generated/azure_cognitiveservices_face/face_client.rb +145 -0
  6. data/lib/1.0/generated/azure_cognitiveservices_face/face_list_operations.rb +857 -0
  7. data/lib/1.0/generated/azure_cognitiveservices_face/models/accessory.rb +59 -0
  8. data/lib/1.0/generated/azure_cognitiveservices_face/models/accessory_type.rb +17 -0
  9. data/lib/1.0/generated/azure_cognitiveservices_face/models/apierror.rb +47 -0
  10. data/lib/1.0/generated/azure_cognitiveservices_face/models/azure_regions.rb +26 -0
  11. data/lib/1.0/generated/azure_cognitiveservices_face/models/blur.rb +60 -0
  12. data/lib/1.0/generated/azure_cognitiveservices_face/models/blur_level.rb +17 -0
  13. data/lib/1.0/generated/azure_cognitiveservices_face/models/coordinate.rb +57 -0
  14. data/lib/1.0/generated/azure_cognitiveservices_face/models/detected_face.rb +82 -0
  15. data/lib/1.0/generated/azure_cognitiveservices_face/models/emotion.rb +124 -0
  16. data/lib/1.0/generated/azure_cognitiveservices_face/models/error.rb +57 -0
  17. data/lib/1.0/generated/azure_cognitiveservices_face/models/exposure.rb +62 -0
  18. data/lib/1.0/generated/azure_cognitiveservices_face/models/exposure_level.rb +17 -0
  19. data/lib/1.0/generated/azure_cognitiveservices_face/models/face_attribute_type.rb +28 -0
  20. data/lib/1.0/generated/azure_cognitiveservices_face/models/face_attributes.rb +214 -0
  21. data/lib/1.0/generated/azure_cognitiveservices_face/models/face_landmarks.rb +360 -0
  22. data/lib/1.0/generated/azure_cognitiveservices_face/models/face_list.rb +92 -0
  23. data/lib/1.0/generated/azure_cognitiveservices_face/models/face_rectangle.rb +81 -0
  24. data/lib/1.0/generated/azure_cognitiveservices_face/models/facial_hair.rb +68 -0
  25. data/lib/1.0/generated/azure_cognitiveservices_face/models/find_similar_match_mode.rb +16 -0
  26. data/lib/1.0/generated/azure_cognitiveservices_face/models/find_similar_request.rb +121 -0
  27. data/lib/1.0/generated/azure_cognitiveservices_face/models/gender.rb +17 -0
  28. data/lib/1.0/generated/azure_cognitiveservices_face/models/glasses_type.rb +18 -0
  29. data/lib/1.0/generated/azure_cognitiveservices_face/models/group_request.rb +58 -0
  30. data/lib/1.0/generated/azure_cognitiveservices_face/models/group_result.rb +83 -0
  31. data/lib/1.0/generated/azure_cognitiveservices_face/models/hair.rb +80 -0
  32. data/lib/1.0/generated/azure_cognitiveservices_face/models/hair_color.rb +60 -0
  33. data/lib/1.0/generated/azure_cognitiveservices_face/models/hair_color_type.rb +22 -0
  34. data/lib/1.0/generated/azure_cognitiveservices_face/models/head_pose.rb +68 -0
  35. data/lib/1.0/generated/azure_cognitiveservices_face/models/identify_candidate.rb +59 -0
  36. data/lib/1.0/generated/azure_cognitiveservices_face/models/identify_request.rb +105 -0
  37. data/lib/1.0/generated/azure_cognitiveservices_face/models/identify_result.rb +69 -0
  38. data/lib/1.0/generated/azure_cognitiveservices_face/models/image_url.rb +47 -0
  39. data/lib/1.0/generated/azure_cognitiveservices_face/models/makeup.rb +59 -0
  40. data/lib/1.0/generated/azure_cognitiveservices_face/models/name_and_user_data_contract.rb +64 -0
  41. data/lib/1.0/generated/azure_cognitiveservices_face/models/noise.rb +62 -0
  42. data/lib/1.0/generated/azure_cognitiveservices_face/models/noise_level.rb +17 -0
  43. data/lib/1.0/generated/azure_cognitiveservices_face/models/occlusion.rb +70 -0
  44. data/lib/1.0/generated/azure_cognitiveservices_face/models/persisted_face.rb +63 -0
  45. data/lib/1.0/generated/azure_cognitiveservices_face/models/person.rb +89 -0
  46. data/lib/1.0/generated/azure_cognitiveservices_face/models/person_group.rb +72 -0
  47. data/lib/1.0/generated/azure_cognitiveservices_face/models/similar_face.rb +73 -0
  48. data/lib/1.0/generated/azure_cognitiveservices_face/models/training_status.rb +89 -0
  49. data/lib/1.0/generated/azure_cognitiveservices_face/models/training_status_type.rb +18 -0
  50. data/lib/1.0/generated/azure_cognitiveservices_face/models/update_person_face_request.rb +50 -0
  51. data/lib/1.0/generated/azure_cognitiveservices_face/models/verify_face_to_face_request.rb +57 -0
  52. data/lib/1.0/generated/azure_cognitiveservices_face/models/verify_face_to_person_request.rb +75 -0
  53. data/lib/1.0/generated/azure_cognitiveservices_face/models/verify_result.rb +62 -0
  54. data/lib/1.0/generated/azure_cognitiveservices_face/module_definition.rb +9 -0
  55. data/lib/1.0/generated/azure_cognitiveservices_face/person_group_operations.rb +678 -0
  56. data/lib/1.0/generated/azure_cognitiveservices_face/person_group_person.rb +1121 -0
  57. data/lib/azure_cognitiveservices_face.rb +6 -0
  58. data/lib/module_definition.rb +7 -0
  59. data/lib/profiles/latest/face_latest_profile_client.rb +38 -0
  60. data/lib/profiles/latest/face_module_definition.rb +8 -0
  61. data/lib/profiles/latest/modules/face_profile_module.rb +253 -0
  62. data/lib/version.rb +7 -0
  63. metadata +180 -0
@@ -0,0 +1,75 @@
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::CognitiveServices::Face::V1_0
7
+ module Models
8
+ #
9
+ # Request body for verify operation.
10
+ #
11
+ class VerifyFaceToPersonRequest
12
+
13
+ include MsRestAzure
14
+
15
+ # @return FaceId the face, comes from Face - Detect
16
+ attr_accessor :face_id
17
+
18
+ # @return [String] Using existing personGroupId and personId for fast
19
+ # loading a specified person. personGroupId is created in Person
20
+ # Groups.Create.
21
+ attr_accessor :person_group_id
22
+
23
+ # @return Specify a certain person in a person group. personId is created
24
+ # in Persons.Create.
25
+ attr_accessor :person_id
26
+
27
+
28
+ #
29
+ # Mapper for VerifyFaceToPersonRequest class as Ruby Hash.
30
+ # This will be used for serialization/deserialization.
31
+ #
32
+ def self.mapper()
33
+ {
34
+ client_side_validation: true,
35
+ required: false,
36
+ serialized_name: 'VerifyFaceToPersonRequest',
37
+ type: {
38
+ name: 'Composite',
39
+ class_name: 'VerifyFaceToPersonRequest',
40
+ model_properties: {
41
+ face_id: {
42
+ client_side_validation: true,
43
+ required: true,
44
+ serialized_name: 'faceId',
45
+ type: {
46
+ name: 'String'
47
+ }
48
+ },
49
+ person_group_id: {
50
+ client_side_validation: true,
51
+ required: true,
52
+ serialized_name: 'personGroupId',
53
+ constraints: {
54
+ MaxLength: 64,
55
+ Pattern: '^[a-z0-9-_]+$'
56
+ },
57
+ type: {
58
+ name: 'String'
59
+ }
60
+ },
61
+ person_id: {
62
+ client_side_validation: true,
63
+ required: true,
64
+ serialized_name: 'personId',
65
+ type: {
66
+ name: 'String'
67
+ }
68
+ }
69
+ }
70
+ }
71
+ }
72
+ end
73
+ end
74
+ end
75
+ end
@@ -0,0 +1,62 @@
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::CognitiveServices::Face::V1_0
7
+ module Models
8
+ #
9
+ # Result of the verify operation.
10
+ #
11
+ class VerifyResult
12
+
13
+ include MsRestAzure
14
+
15
+ # @return [Boolean] True if the two faces belong to the same person or
16
+ # the face belongs to the person, otherwise false.
17
+ attr_accessor :is_identical
18
+
19
+ # @return [Float] A number indicates the similarity confidence of whether
20
+ # two faces belong to the same person, or whether the face belongs to the
21
+ # person. By default, isIdentical is set to True if similarity confidence
22
+ # is greater than or equal to 0.5. This is useful for advanced users to
23
+ # override "isIdentical" and fine-tune the result on their own data.
24
+ attr_accessor :confidence
25
+
26
+
27
+ #
28
+ # Mapper for VerifyResult class as Ruby Hash.
29
+ # This will be used for serialization/deserialization.
30
+ #
31
+ def self.mapper()
32
+ {
33
+ client_side_validation: true,
34
+ required: false,
35
+ serialized_name: 'VerifyResult',
36
+ type: {
37
+ name: 'Composite',
38
+ class_name: 'VerifyResult',
39
+ model_properties: {
40
+ is_identical: {
41
+ client_side_validation: true,
42
+ required: true,
43
+ serialized_name: 'isIdentical',
44
+ type: {
45
+ name: 'Boolean'
46
+ }
47
+ },
48
+ confidence: {
49
+ client_side_validation: true,
50
+ required: true,
51
+ serialized_name: 'confidence',
52
+ type: {
53
+ name: 'Double'
54
+ }
55
+ }
56
+ }
57
+ }
58
+ }
59
+ end
60
+ end
61
+ end
62
+ 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::CognitiveServices end
8
+ module Azure::CognitiveServices::Face end
9
+ module Azure::CognitiveServices::Face::V1_0 end
@@ -0,0 +1,678 @@
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::CognitiveServices::Face::V1_0
7
+ #
8
+ # An API for face detection, verification, and identification.
9
+ #
10
+ class PersonGroupOperations
11
+ include MsRestAzure
12
+
13
+ #
14
+ # Creates and initializes a new instance of the PersonGroupOperations class.
15
+ # @param client service class for accessing basic functionality.
16
+ #
17
+ def initialize(client)
18
+ @client = client
19
+ end
20
+
21
+ # @return [FaceClient] reference to the FaceClient
22
+ attr_reader :client
23
+
24
+ #
25
+ # Create a new person group with specified personGroupId, name and
26
+ # user-provided userData.
27
+ #
28
+ # @param person_group_id [String] Id referencing a particular person group.
29
+ # @param name [String] User defined name, maximum length is 128.
30
+ # @param user_data [String] User specified data. Length should not exceed 16KB.
31
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
32
+ # will be added to the HTTP request.
33
+ #
34
+ #
35
+ def create(person_group_id, name:nil, user_data:nil, custom_headers:nil)
36
+ response = create_async(person_group_id, name:name, user_data:user_data, custom_headers:custom_headers).value!
37
+ nil
38
+ end
39
+
40
+ #
41
+ # Create a new person group with specified personGroupId, name and
42
+ # user-provided userData.
43
+ #
44
+ # @param person_group_id [String] Id referencing a particular person group.
45
+ # @param name [String] User defined name, maximum length is 128.
46
+ # @param user_data [String] User specified data. Length should not exceed 16KB.
47
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
48
+ # will be added to the HTTP request.
49
+ #
50
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
51
+ #
52
+ def create_with_http_info(person_group_id, name:nil, user_data:nil, custom_headers:nil)
53
+ create_async(person_group_id, name:name, user_data:user_data, custom_headers:custom_headers).value!
54
+ end
55
+
56
+ #
57
+ # Create a new person group with specified personGroupId, name and
58
+ # user-provided userData.
59
+ #
60
+ # @param person_group_id [String] Id referencing a particular person group.
61
+ # @param name [String] User defined name, maximum length is 128.
62
+ # @param user_data [String] User specified data. Length should not exceed 16KB.
63
+ # @param [Hash{String => String}] A hash of custom headers that will be added
64
+ # to the HTTP request.
65
+ #
66
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
67
+ #
68
+ def create_async(person_group_id, name:nil, user_data:nil, custom_headers:nil)
69
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
70
+ fail ArgumentError, 'person_group_id is nil' if person_group_id.nil?
71
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'MaxLength': '64'" if !person_group_id.nil? && person_group_id.length > 64
72
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'Pattern': '^[a-z0-9-_]+$'" if !person_group_id.nil? && person_group_id.match(Regexp.new('^^[a-z0-9-_]+$$')).nil?
73
+ fail ArgumentError, "'name' should satisfy the constraint - 'MaxLength': '128'" if !name.nil? && name.length > 128
74
+ fail ArgumentError, "'user_data' should satisfy the constraint - 'MaxLength': '16384'" if !user_data.nil? && user_data.length > 16384
75
+
76
+ body = NameAndUserDataContract.new
77
+ unless name.nil? && user_data.nil?
78
+ body.name = name
79
+ body.user_data = user_data
80
+ end
81
+
82
+ request_headers = {}
83
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
84
+
85
+ # Set Headers
86
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
87
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
88
+
89
+ # Serialize Request
90
+ request_mapper = Azure::CognitiveServices::Face::V1_0::Models::NameAndUserDataContract.mapper()
91
+ request_content = @client.serialize(request_mapper, body)
92
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
93
+
94
+ path_template = 'persongroups/{personGroupId}'
95
+
96
+ request_url = @base_url || @client.base_url
97
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
98
+
99
+ options = {
100
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
101
+ path_params: {'personGroupId' => person_group_id},
102
+ body: request_content,
103
+ headers: request_headers.merge(custom_headers || {}),
104
+ base_url: request_url
105
+ }
106
+ promise = @client.make_request_async(:put, path_template, options)
107
+
108
+ promise = promise.then do |result|
109
+ http_response = result.response
110
+ status_code = http_response.status
111
+ response_content = http_response.body
112
+ unless status_code == 200
113
+ error_model = JSON.load(response_content)
114
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
115
+ end
116
+
117
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
118
+
119
+ result
120
+ end
121
+
122
+ promise.execute
123
+ end
124
+
125
+ #
126
+ # Delete an existing person group. Persisted face images of all people in the
127
+ # person group will also be deleted.
128
+ #
129
+ # @param person_group_id [String] Id referencing a particular person group.
130
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
131
+ # will be added to the HTTP request.
132
+ #
133
+ #
134
+ def delete(person_group_id, custom_headers:nil)
135
+ response = delete_async(person_group_id, custom_headers:custom_headers).value!
136
+ nil
137
+ end
138
+
139
+ #
140
+ # Delete an existing person group. Persisted face images of all people in the
141
+ # person group will also be deleted.
142
+ #
143
+ # @param person_group_id [String] Id referencing a particular person group.
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 delete_with_http_info(person_group_id, custom_headers:nil)
150
+ delete_async(person_group_id, custom_headers:custom_headers).value!
151
+ end
152
+
153
+ #
154
+ # Delete an existing person group. Persisted face images of all people in the
155
+ # person group will also be deleted.
156
+ #
157
+ # @param person_group_id [String] Id referencing a particular person group.
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 delete_async(person_group_id, custom_headers:nil)
164
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
165
+ fail ArgumentError, 'person_group_id is nil' if person_group_id.nil?
166
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'MaxLength': '64'" if !person_group_id.nil? && person_group_id.length > 64
167
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'Pattern': '^[a-z0-9-_]+$'" if !person_group_id.nil? && person_group_id.match(Regexp.new('^^[a-z0-9-_]+$$')).nil?
168
+
169
+
170
+ request_headers = {}
171
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
172
+
173
+ # Set Headers
174
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
175
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
176
+ path_template = 'persongroups/{personGroupId}'
177
+
178
+ request_url = @base_url || @client.base_url
179
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
180
+
181
+ options = {
182
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
183
+ path_params: {'personGroupId' => person_group_id},
184
+ headers: request_headers.merge(custom_headers || {}),
185
+ base_url: request_url
186
+ }
187
+ promise = @client.make_request_async(:delete, path_template, options)
188
+
189
+ promise = promise.then do |result|
190
+ http_response = result.response
191
+ status_code = http_response.status
192
+ response_content = http_response.body
193
+ unless status_code == 200
194
+ error_model = JSON.load(response_content)
195
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
196
+ end
197
+
198
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
199
+
200
+ result
201
+ end
202
+
203
+ promise.execute
204
+ end
205
+
206
+ #
207
+ # Retrieve the information of a person group, including its name and userData.
208
+ #
209
+ # @param person_group_id [String] Id referencing a particular person group.
210
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
211
+ # will be added to the HTTP request.
212
+ #
213
+ # @return [PersonGroup] operation results.
214
+ #
215
+ def get(person_group_id, custom_headers:nil)
216
+ response = get_async(person_group_id, custom_headers:custom_headers).value!
217
+ response.body unless response.nil?
218
+ end
219
+
220
+ #
221
+ # Retrieve the information of a person group, including its name and userData.
222
+ #
223
+ # @param person_group_id [String] Id referencing a particular person group.
224
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
225
+ # will be added to the HTTP request.
226
+ #
227
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
228
+ #
229
+ def get_with_http_info(person_group_id, custom_headers:nil)
230
+ get_async(person_group_id, custom_headers:custom_headers).value!
231
+ end
232
+
233
+ #
234
+ # Retrieve the information of a person group, including its name and userData.
235
+ #
236
+ # @param person_group_id [String] Id referencing a particular person group.
237
+ # @param [Hash{String => String}] A hash of custom headers that will be added
238
+ # to the HTTP request.
239
+ #
240
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
241
+ #
242
+ def get_async(person_group_id, custom_headers:nil)
243
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
244
+ fail ArgumentError, 'person_group_id is nil' if person_group_id.nil?
245
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'MaxLength': '64'" if !person_group_id.nil? && person_group_id.length > 64
246
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'Pattern': '^[a-z0-9-_]+$'" if !person_group_id.nil? && person_group_id.match(Regexp.new('^^[a-z0-9-_]+$$')).nil?
247
+
248
+
249
+ request_headers = {}
250
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
251
+
252
+ # Set Headers
253
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
254
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
255
+ path_template = 'persongroups/{personGroupId}'
256
+
257
+ request_url = @base_url || @client.base_url
258
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
259
+
260
+ options = {
261
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
262
+ path_params: {'personGroupId' => person_group_id},
263
+ headers: request_headers.merge(custom_headers || {}),
264
+ base_url: request_url
265
+ }
266
+ promise = @client.make_request_async(:get, path_template, options)
267
+
268
+ promise = promise.then do |result|
269
+ http_response = result.response
270
+ status_code = http_response.status
271
+ response_content = http_response.body
272
+ unless status_code == 200
273
+ error_model = JSON.load(response_content)
274
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
275
+ end
276
+
277
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
278
+ # Deserialize Response
279
+ if status_code == 200
280
+ begin
281
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
282
+ result_mapper = Azure::CognitiveServices::Face::V1_0::Models::PersonGroup.mapper()
283
+ result.body = @client.deserialize(result_mapper, parsed_response)
284
+ rescue Exception => e
285
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
286
+ end
287
+ end
288
+
289
+ result
290
+ end
291
+
292
+ promise.execute
293
+ end
294
+
295
+ #
296
+ # Update an existing person group's display name and userData. The properties
297
+ # which does not appear in request body will not be updated.
298
+ #
299
+ # @param person_group_id [String] Id referencing a particular person group.
300
+ # @param name [String] User defined name, maximum length is 128.
301
+ # @param user_data [String] User specified data. Length should not exceed 16KB.
302
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
303
+ # will be added to the HTTP request.
304
+ #
305
+ #
306
+ def update(person_group_id, name:nil, user_data:nil, custom_headers:nil)
307
+ response = update_async(person_group_id, name:name, user_data:user_data, custom_headers:custom_headers).value!
308
+ nil
309
+ end
310
+
311
+ #
312
+ # Update an existing person group's display name and userData. The properties
313
+ # which does not appear in request body will not be updated.
314
+ #
315
+ # @param person_group_id [String] Id referencing a particular person group.
316
+ # @param name [String] User defined name, maximum length is 128.
317
+ # @param user_data [String] User specified data. Length should not exceed 16KB.
318
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
319
+ # will be added to the HTTP request.
320
+ #
321
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
322
+ #
323
+ def update_with_http_info(person_group_id, name:nil, user_data:nil, custom_headers:nil)
324
+ update_async(person_group_id, name:name, user_data:user_data, custom_headers:custom_headers).value!
325
+ end
326
+
327
+ #
328
+ # Update an existing person group's display name and userData. The properties
329
+ # which does not appear in request body will not be updated.
330
+ #
331
+ # @param person_group_id [String] Id referencing a particular person group.
332
+ # @param name [String] User defined name, maximum length is 128.
333
+ # @param user_data [String] User specified data. Length should not exceed 16KB.
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 update_async(person_group_id, name:nil, user_data:nil, custom_headers:nil)
340
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
341
+ fail ArgumentError, 'person_group_id is nil' if person_group_id.nil?
342
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'MaxLength': '64'" if !person_group_id.nil? && person_group_id.length > 64
343
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'Pattern': '^[a-z0-9-_]+$'" if !person_group_id.nil? && person_group_id.match(Regexp.new('^^[a-z0-9-_]+$$')).nil?
344
+ fail ArgumentError, "'name' should satisfy the constraint - 'MaxLength': '128'" if !name.nil? && name.length > 128
345
+ fail ArgumentError, "'user_data' should satisfy the constraint - 'MaxLength': '16384'" if !user_data.nil? && user_data.length > 16384
346
+
347
+ body = NameAndUserDataContract.new
348
+ unless name.nil? && user_data.nil?
349
+ body.name = name
350
+ body.user_data = user_data
351
+ end
352
+
353
+ request_headers = {}
354
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
355
+
356
+ # Set Headers
357
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
358
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
359
+
360
+ # Serialize Request
361
+ request_mapper = Azure::CognitiveServices::Face::V1_0::Models::NameAndUserDataContract.mapper()
362
+ request_content = @client.serialize(request_mapper, body)
363
+ request_content = request_content != nil ? JSON.generate(request_content, quirks_mode: true) : nil
364
+
365
+ path_template = 'persongroups/{personGroupId}'
366
+
367
+ request_url = @base_url || @client.base_url
368
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
369
+
370
+ options = {
371
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
372
+ path_params: {'personGroupId' => person_group_id},
373
+ body: request_content,
374
+ headers: request_headers.merge(custom_headers || {}),
375
+ base_url: request_url
376
+ }
377
+ promise = @client.make_request_async(:patch, path_template, options)
378
+
379
+ promise = promise.then do |result|
380
+ http_response = result.response
381
+ status_code = http_response.status
382
+ response_content = http_response.body
383
+ unless status_code == 200
384
+ error_model = JSON.load(response_content)
385
+ fail MsRestAzure::AzureOperationError.new(result.request, http_response, error_model)
386
+ end
387
+
388
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
389
+
390
+ result
391
+ end
392
+
393
+ promise.execute
394
+ end
395
+
396
+ #
397
+ # Retrieve the training status of a person group (completed or ongoing).
398
+ #
399
+ # @param person_group_id [String] Id referencing a particular person group.
400
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
401
+ # will be added to the HTTP request.
402
+ #
403
+ # @return [TrainingStatus] operation results.
404
+ #
405
+ def get_training_status(person_group_id, custom_headers:nil)
406
+ response = get_training_status_async(person_group_id, custom_headers:custom_headers).value!
407
+ response.body unless response.nil?
408
+ end
409
+
410
+ #
411
+ # Retrieve the training status of a person group (completed or ongoing).
412
+ #
413
+ # @param person_group_id [String] Id referencing a particular person group.
414
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
415
+ # will be added to the HTTP request.
416
+ #
417
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
418
+ #
419
+ def get_training_status_with_http_info(person_group_id, custom_headers:nil)
420
+ get_training_status_async(person_group_id, custom_headers:custom_headers).value!
421
+ end
422
+
423
+ #
424
+ # Retrieve the training status of a person group (completed or ongoing).
425
+ #
426
+ # @param person_group_id [String] Id referencing a particular person group.
427
+ # @param [Hash{String => String}] A hash of custom headers that will be added
428
+ # to the HTTP request.
429
+ #
430
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
431
+ #
432
+ def get_training_status_async(person_group_id, custom_headers:nil)
433
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
434
+ fail ArgumentError, 'person_group_id is nil' if person_group_id.nil?
435
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'MaxLength': '64'" if !person_group_id.nil? && person_group_id.length > 64
436
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'Pattern': '^[a-z0-9-_]+$'" if !person_group_id.nil? && person_group_id.match(Regexp.new('^^[a-z0-9-_]+$$')).nil?
437
+
438
+
439
+ request_headers = {}
440
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
441
+
442
+ # Set Headers
443
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
444
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
445
+ path_template = 'persongroups/{personGroupId}/training'
446
+
447
+ request_url = @base_url || @client.base_url
448
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
449
+
450
+ options = {
451
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
452
+ path_params: {'personGroupId' => person_group_id},
453
+ headers: request_headers.merge(custom_headers || {}),
454
+ base_url: request_url
455
+ }
456
+ promise = @client.make_request_async(:get, path_template, options)
457
+
458
+ promise = promise.then do |result|
459
+ http_response = result.response
460
+ status_code = http_response.status
461
+ response_content = http_response.body
462
+ unless status_code == 200
463
+ error_model = JSON.load(response_content)
464
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
465
+ end
466
+
467
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
468
+ # Deserialize Response
469
+ if status_code == 200
470
+ begin
471
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
472
+ result_mapper = Azure::CognitiveServices::Face::V1_0::Models::TrainingStatus.mapper()
473
+ result.body = @client.deserialize(result_mapper, parsed_response)
474
+ rescue Exception => e
475
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
476
+ end
477
+ end
478
+
479
+ result
480
+ end
481
+
482
+ promise.execute
483
+ end
484
+
485
+ #
486
+ # List person groups and their information.
487
+ #
488
+ # @param start [String] List person groups from the least personGroupId greater
489
+ # than the "start".
490
+ # @param top [Integer] The number of person groups to list.
491
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
492
+ # will be added to the HTTP request.
493
+ #
494
+ # @return [Array] operation results.
495
+ #
496
+ def list(start:nil, top:1000, custom_headers:nil)
497
+ response = list_async(start:start, top:top, custom_headers:custom_headers).value!
498
+ response.body unless response.nil?
499
+ end
500
+
501
+ #
502
+ # List person groups and their information.
503
+ #
504
+ # @param start [String] List person groups from the least personGroupId greater
505
+ # than the "start".
506
+ # @param top [Integer] The number of person groups to list.
507
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
508
+ # will be added to the HTTP request.
509
+ #
510
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
511
+ #
512
+ def list_with_http_info(start:nil, top:1000, custom_headers:nil)
513
+ list_async(start:start, top:top, custom_headers:custom_headers).value!
514
+ end
515
+
516
+ #
517
+ # List person groups and their information.
518
+ #
519
+ # @param start [String] List person groups from the least personGroupId greater
520
+ # than the "start".
521
+ # @param top [Integer] The number of person groups to list.
522
+ # @param [Hash{String => String}] A hash of custom headers that will be added
523
+ # to the HTTP request.
524
+ #
525
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
526
+ #
527
+ def list_async(start:nil, top:1000, custom_headers:nil)
528
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
529
+ fail ArgumentError, "'start' should satisfy the constraint - 'MaxLength': '64'" if !start.nil? && start.length > 64
530
+ fail ArgumentError, "'top' should satisfy the constraint - 'InclusiveMaximum': '1000'" if !top.nil? && top > 1000
531
+ fail ArgumentError, "'top' should satisfy the constraint - 'InclusiveMinimum': '1'" if !top.nil? && top < 1
532
+
533
+
534
+ request_headers = {}
535
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
536
+
537
+ # Set Headers
538
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
539
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
540
+ path_template = 'persongroups'
541
+
542
+ request_url = @base_url || @client.base_url
543
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
544
+
545
+ options = {
546
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
547
+ query_params: {'start' => start,'top' => top},
548
+ headers: request_headers.merge(custom_headers || {}),
549
+ base_url: request_url
550
+ }
551
+ promise = @client.make_request_async(:get, path_template, options)
552
+
553
+ promise = promise.then do |result|
554
+ http_response = result.response
555
+ status_code = http_response.status
556
+ response_content = http_response.body
557
+ unless status_code == 200
558
+ error_model = JSON.load(response_content)
559
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
560
+ end
561
+
562
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
563
+ # Deserialize Response
564
+ if status_code == 200
565
+ begin
566
+ parsed_response = response_content.to_s.empty? ? nil : JSON.load(response_content)
567
+ result_mapper = {
568
+ client_side_validation: true,
569
+ required: false,
570
+ serialized_name: 'parsed_response',
571
+ type: {
572
+ name: 'Sequence',
573
+ element: {
574
+ client_side_validation: true,
575
+ required: false,
576
+ serialized_name: 'PersonGroupElementType',
577
+ type: {
578
+ name: 'Composite',
579
+ class_name: 'PersonGroup'
580
+ }
581
+ }
582
+ }
583
+ }
584
+ result.body = @client.deserialize(result_mapper, parsed_response)
585
+ rescue Exception => e
586
+ fail MsRest::DeserializationError.new('Error occurred in deserializing the response', e.message, e.backtrace, result)
587
+ end
588
+ end
589
+
590
+ result
591
+ end
592
+
593
+ promise.execute
594
+ end
595
+
596
+ #
597
+ # Queue a person group training task, the training task may not be started
598
+ # immediately.
599
+ #
600
+ # @param person_group_id [String] Id referencing a particular person group.
601
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
602
+ # will be added to the HTTP request.
603
+ #
604
+ #
605
+ def train(person_group_id, custom_headers:nil)
606
+ response = train_async(person_group_id, custom_headers:custom_headers).value!
607
+ nil
608
+ end
609
+
610
+ #
611
+ # Queue a person group training task, the training task may not be started
612
+ # immediately.
613
+ #
614
+ # @param person_group_id [String] Id referencing a particular person group.
615
+ # @param custom_headers [Hash{String => String}] A hash of custom headers that
616
+ # will be added to the HTTP request.
617
+ #
618
+ # @return [MsRestAzure::AzureOperationResponse] HTTP response information.
619
+ #
620
+ def train_with_http_info(person_group_id, custom_headers:nil)
621
+ train_async(person_group_id, custom_headers:custom_headers).value!
622
+ end
623
+
624
+ #
625
+ # Queue a person group training task, the training task may not be started
626
+ # immediately.
627
+ #
628
+ # @param person_group_id [String] Id referencing a particular person group.
629
+ # @param [Hash{String => String}] A hash of custom headers that will be added
630
+ # to the HTTP request.
631
+ #
632
+ # @return [Concurrent::Promise] Promise object which holds the HTTP response.
633
+ #
634
+ def train_async(person_group_id, custom_headers:nil)
635
+ fail ArgumentError, '@client.azure_region is nil' if @client.azure_region.nil?
636
+ fail ArgumentError, 'person_group_id is nil' if person_group_id.nil?
637
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'MaxLength': '64'" if !person_group_id.nil? && person_group_id.length > 64
638
+ fail ArgumentError, "'person_group_id' should satisfy the constraint - 'Pattern': '^[a-z0-9-_]+$'" if !person_group_id.nil? && person_group_id.match(Regexp.new('^^[a-z0-9-_]+$$')).nil?
639
+
640
+
641
+ request_headers = {}
642
+ request_headers['Content-Type'] = 'application/json; charset=utf-8'
643
+
644
+ # Set Headers
645
+ request_headers['x-ms-client-request-id'] = SecureRandom.uuid
646
+ request_headers['accept-language'] = @client.accept_language unless @client.accept_language.nil?
647
+ path_template = 'persongroups/{personGroupId}/train'
648
+
649
+ request_url = @base_url || @client.base_url
650
+ request_url = request_url.gsub('{AzureRegion}', @client.azure_region)
651
+
652
+ options = {
653
+ middlewares: [[MsRest::RetryPolicyMiddleware, times: 3, retry: 0.02], [:cookie_jar]],
654
+ path_params: {'personGroupId' => person_group_id},
655
+ headers: request_headers.merge(custom_headers || {}),
656
+ base_url: request_url
657
+ }
658
+ promise = @client.make_request_async(:post, path_template, options)
659
+
660
+ promise = promise.then do |result|
661
+ http_response = result.response
662
+ status_code = http_response.status
663
+ response_content = http_response.body
664
+ unless status_code == 202
665
+ error_model = JSON.load(response_content)
666
+ fail MsRest::HttpOperationError.new(result.request, http_response, error_model)
667
+ end
668
+
669
+ result.request_id = http_response['x-ms-request-id'] unless http_response['x-ms-request-id'].nil?
670
+
671
+ result
672
+ end
673
+
674
+ promise.execute
675
+ end
676
+
677
+ end
678
+ end