azure_cognitiveservices_visualsearch 0.17.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 (60) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/lib/1.0/generated/azure_cognitiveservices_visualsearch.rb +75 -0
  4. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/images.rb +639 -0
  5. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/action.rb +237 -0
  6. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/aggregate_offer.rb +211 -0
  7. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/aggregate_rating.rb +89 -0
  8. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/content_types.rb +20 -0
  9. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/creative_work.rb +190 -0
  10. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/crop_area.rb +92 -0
  11. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/currency.rb +175 -0
  12. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/error.rb +116 -0
  13. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/error_code.rb +20 -0
  14. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/error_response.rb +98 -0
  15. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/error_sub_code.rb +25 -0
  16. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/filters.rb +48 -0
  17. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/identifiable.rb +62 -0
  18. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_action.rb +234 -0
  19. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_entity_action.rb +231 -0
  20. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_info.rb +86 -0
  21. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_knowledge.rb +112 -0
  22. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_module_action.rb +244 -0
  23. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_object.rb +326 -0
  24. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_recipes_action.rb +244 -0
  25. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_related_searches_action.rb +244 -0
  26. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_shopping_sources_action.rb +245 -0
  27. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_tag.rb +182 -0
  28. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/image_tag_region.rb +61 -0
  29. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/images_image_metadata.rb +80 -0
  30. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/images_module.rb +56 -0
  31. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/intangible.rb +133 -0
  32. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/item_availability.rb +22 -0
  33. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/knowledge_request.rb +49 -0
  34. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/media_object.rb +263 -0
  35. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/normalized_quadrilateral.rb +183 -0
  36. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/offer.rb +231 -0
  37. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/organization.rb +132 -0
  38. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/person.rb +156 -0
  39. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/point2d.rb +154 -0
  40. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/properties_item.rb +59 -0
  41. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/query.rb +101 -0
  42. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/rating.rb +84 -0
  43. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/recipe.rb +219 -0
  44. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/recipes_module.rb +56 -0
  45. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/related_searches_module.rb +56 -0
  46. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/response.rb +86 -0
  47. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/response_base.rb +70 -0
  48. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/safe_search.rb +17 -0
  49. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/structured_value.rb +133 -0
  50. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/thing.rb +151 -0
  51. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/models/visual_search_request.rb +62 -0
  52. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/module_definition.rb +9 -0
  53. data/lib/1.0/generated/azure_cognitiveservices_visualsearch/visual_search_client.rb +128 -0
  54. data/lib/azure_cognitiveservices_visualsearch.rb +6 -0
  55. data/lib/module_definition.rb +7 -0
  56. data/lib/profiles/latest/modules/visualsearch_profile_module.rb +247 -0
  57. data/lib/profiles/latest/visualsearch_latest_profile_client.rb +38 -0
  58. data/lib/profiles/latest/visualsearch_module_definition.rb +8 -0
  59. data/lib/version.rb +7 -0
  60. metadata +177 -0
@@ -0,0 +1,231 @@
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::VisualSearch::V1_0
7
+ module Models
8
+ #
9
+ # Defines an entity action.
10
+ #
11
+ class ImageEntityAction < ImageAction
12
+
13
+ include MsRestAzure
14
+
15
+
16
+ def initialize
17
+ @_type = "ImageEntityAction"
18
+ end
19
+
20
+ attr_accessor :_type
21
+
22
+
23
+ #
24
+ # Mapper for ImageEntityAction class as Ruby Hash.
25
+ # This will be used for serialization/deserialization.
26
+ #
27
+ def self.mapper()
28
+ {
29
+ client_side_validation: true,
30
+ required: false,
31
+ serialized_name: 'ImageEntityAction',
32
+ type: {
33
+ name: 'Composite',
34
+ class_name: 'ImageEntityAction',
35
+ model_properties: {
36
+ _type: {
37
+ client_side_validation: true,
38
+ required: true,
39
+ serialized_name: '_type',
40
+ type: {
41
+ name: 'String'
42
+ }
43
+ },
44
+ id: {
45
+ client_side_validation: true,
46
+ required: false,
47
+ read_only: true,
48
+ serialized_name: 'id',
49
+ type: {
50
+ name: 'String'
51
+ }
52
+ },
53
+ read_link: {
54
+ client_side_validation: true,
55
+ required: false,
56
+ read_only: true,
57
+ serialized_name: 'readLink',
58
+ type: {
59
+ name: 'String'
60
+ }
61
+ },
62
+ web_search_url: {
63
+ client_side_validation: true,
64
+ required: false,
65
+ read_only: true,
66
+ serialized_name: 'webSearchUrl',
67
+ type: {
68
+ name: 'String'
69
+ }
70
+ },
71
+ name: {
72
+ client_side_validation: true,
73
+ required: false,
74
+ read_only: true,
75
+ serialized_name: 'name',
76
+ type: {
77
+ name: 'String'
78
+ }
79
+ },
80
+ url: {
81
+ client_side_validation: true,
82
+ required: false,
83
+ read_only: true,
84
+ serialized_name: 'url',
85
+ type: {
86
+ name: 'String'
87
+ }
88
+ },
89
+ image: {
90
+ client_side_validation: true,
91
+ required: false,
92
+ read_only: true,
93
+ serialized_name: 'image',
94
+ type: {
95
+ name: 'Composite',
96
+ class_name: 'ImageObject'
97
+ }
98
+ },
99
+ description: {
100
+ client_side_validation: true,
101
+ required: false,
102
+ read_only: true,
103
+ serialized_name: 'description',
104
+ type: {
105
+ name: 'String'
106
+ }
107
+ },
108
+ alternate_name: {
109
+ client_side_validation: true,
110
+ required: false,
111
+ read_only: true,
112
+ serialized_name: 'alternateName',
113
+ type: {
114
+ name: 'String'
115
+ }
116
+ },
117
+ bing_id: {
118
+ client_side_validation: true,
119
+ required: false,
120
+ read_only: true,
121
+ serialized_name: 'bingId',
122
+ type: {
123
+ name: 'String'
124
+ }
125
+ },
126
+ thumbnail_url: {
127
+ client_side_validation: true,
128
+ required: false,
129
+ read_only: true,
130
+ serialized_name: 'thumbnailUrl',
131
+ type: {
132
+ name: 'String'
133
+ }
134
+ },
135
+ provider: {
136
+ client_side_validation: true,
137
+ required: false,
138
+ read_only: true,
139
+ serialized_name: 'provider',
140
+ type: {
141
+ name: 'Sequence',
142
+ element: {
143
+ client_side_validation: true,
144
+ required: false,
145
+ serialized_name: 'ThingElementType',
146
+ type: {
147
+ name: 'Composite',
148
+ class_name: 'Thing'
149
+ }
150
+ }
151
+ }
152
+ },
153
+ date_published: {
154
+ client_side_validation: true,
155
+ required: false,
156
+ read_only: true,
157
+ serialized_name: 'datePublished',
158
+ type: {
159
+ name: 'String'
160
+ }
161
+ },
162
+ text: {
163
+ client_side_validation: true,
164
+ required: false,
165
+ read_only: true,
166
+ serialized_name: 'text',
167
+ type: {
168
+ name: 'String'
169
+ }
170
+ },
171
+ result: {
172
+ client_side_validation: true,
173
+ required: false,
174
+ read_only: true,
175
+ serialized_name: 'result',
176
+ type: {
177
+ name: 'Sequence',
178
+ element: {
179
+ client_side_validation: true,
180
+ required: false,
181
+ serialized_name: 'ThingElementType',
182
+ type: {
183
+ name: 'Composite',
184
+ class_name: 'Thing'
185
+ }
186
+ }
187
+ }
188
+ },
189
+ display_name: {
190
+ client_side_validation: true,
191
+ required: false,
192
+ read_only: true,
193
+ serialized_name: 'displayName',
194
+ type: {
195
+ name: 'String'
196
+ }
197
+ },
198
+ is_top_action: {
199
+ client_side_validation: true,
200
+ required: false,
201
+ read_only: true,
202
+ serialized_name: 'isTopAction',
203
+ type: {
204
+ name: 'Boolean'
205
+ }
206
+ },
207
+ service_url: {
208
+ client_side_validation: true,
209
+ required: false,
210
+ read_only: true,
211
+ serialized_name: 'serviceUrl',
212
+ type: {
213
+ name: 'String'
214
+ }
215
+ },
216
+ action_type: {
217
+ client_side_validation: true,
218
+ required: false,
219
+ read_only: true,
220
+ serialized_name: 'actionType',
221
+ type: {
222
+ name: 'String'
223
+ }
224
+ }
225
+ }
226
+ }
227
+ }
228
+ end
229
+ end
230
+ end
231
+ end
@@ -0,0 +1,86 @@
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::VisualSearch::V1_0
7
+ module Models
8
+ #
9
+ # A JSON object that identities the image to get insights of . It also
10
+ # includes the optional crop area that you use to identify the region of
11
+ # interest in the image.
12
+ #
13
+ class ImageInfo
14
+
15
+ include MsRestAzure
16
+
17
+ # @return [String] An image insights token. To get the insights token,
18
+ # call one of the Image Search APIs (for example, /images/search). In the
19
+ # search results, the
20
+ # [Image](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#image)
21
+ # object's
22
+ # [imageInsightsToken](https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-images-api-v7-reference#image-imageinsightstoken)
23
+ # field contains the token. The imageInsightsToken and url fields
24
+ # mutually exclusive; do not specify both. Do not specify an insights
25
+ # token if the request includes the image form data.
26
+ attr_accessor :image_insights_token
27
+
28
+ # @return [String] The URL of the input image. The imageInsightsToken and
29
+ # url fields are mutually exclusive; do not specify both. Do not specify
30
+ # the URL if the request includes the image form data.
31
+ attr_accessor :url
32
+
33
+ # @return [CropArea] A JSON object consisting of coordinates specifying
34
+ # the four corners of a cropped rectangle within the input image. Use the
35
+ # crop area to identify the region of interest in the image. You can
36
+ # apply the crop area to the images specified using the
37
+ # imageInsightsToken or url fields, or an image binary specified in an
38
+ # image form data.
39
+ attr_accessor :crop_area
40
+
41
+
42
+ #
43
+ # Mapper for ImageInfo class as Ruby Hash.
44
+ # This will be used for serialization/deserialization.
45
+ #
46
+ def self.mapper()
47
+ {
48
+ client_side_validation: true,
49
+ required: false,
50
+ serialized_name: 'ImageInfo',
51
+ type: {
52
+ name: 'Composite',
53
+ class_name: 'ImageInfo',
54
+ model_properties: {
55
+ image_insights_token: {
56
+ client_side_validation: true,
57
+ required: false,
58
+ serialized_name: 'imageInsightsToken',
59
+ type: {
60
+ name: 'String'
61
+ }
62
+ },
63
+ url: {
64
+ client_side_validation: true,
65
+ required: false,
66
+ serialized_name: 'url',
67
+ type: {
68
+ name: 'String'
69
+ }
70
+ },
71
+ crop_area: {
72
+ client_side_validation: true,
73
+ required: false,
74
+ serialized_name: 'cropArea',
75
+ type: {
76
+ name: 'Composite',
77
+ class_name: 'CropArea'
78
+ }
79
+ }
80
+ }
81
+ }
82
+ }
83
+ end
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,112 @@
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::VisualSearch::V1_0
7
+ module Models
8
+ #
9
+ # Defines a visual search API response.
10
+ #
11
+ class ImageKnowledge < Response
12
+
13
+ include MsRestAzure
14
+
15
+
16
+ def initialize
17
+ @_type = "ImageKnowledge"
18
+ end
19
+
20
+ attr_accessor :_type
21
+
22
+ # @return [Array<ImageTag>] A list of visual search tags.
23
+ attr_accessor :tags
24
+
25
+ # @return [ImageObject] Image object containing metadata about the
26
+ # requested image.
27
+ attr_accessor :image
28
+
29
+
30
+ #
31
+ # Mapper for ImageKnowledge class as Ruby Hash.
32
+ # This will be used for serialization/deserialization.
33
+ #
34
+ def self.mapper()
35
+ {
36
+ client_side_validation: true,
37
+ required: false,
38
+ serialized_name: 'ImageKnowledge',
39
+ type: {
40
+ name: 'Composite',
41
+ class_name: 'ImageKnowledge',
42
+ model_properties: {
43
+ _type: {
44
+ client_side_validation: true,
45
+ required: true,
46
+ serialized_name: '_type',
47
+ type: {
48
+ name: 'String'
49
+ }
50
+ },
51
+ id: {
52
+ client_side_validation: true,
53
+ required: false,
54
+ read_only: true,
55
+ serialized_name: 'id',
56
+ type: {
57
+ name: 'String'
58
+ }
59
+ },
60
+ read_link: {
61
+ client_side_validation: true,
62
+ required: false,
63
+ read_only: true,
64
+ serialized_name: 'readLink',
65
+ type: {
66
+ name: 'String'
67
+ }
68
+ },
69
+ web_search_url: {
70
+ client_side_validation: true,
71
+ required: false,
72
+ read_only: true,
73
+ serialized_name: 'webSearchUrl',
74
+ type: {
75
+ name: 'String'
76
+ }
77
+ },
78
+ tags: {
79
+ client_side_validation: true,
80
+ required: false,
81
+ read_only: true,
82
+ serialized_name: 'tags',
83
+ type: {
84
+ name: 'Sequence',
85
+ element: {
86
+ client_side_validation: true,
87
+ required: false,
88
+ serialized_name: 'ImageTagElementType',
89
+ type: {
90
+ name: 'Composite',
91
+ class_name: 'ImageTag'
92
+ }
93
+ }
94
+ }
95
+ },
96
+ image: {
97
+ client_side_validation: true,
98
+ required: false,
99
+ read_only: true,
100
+ serialized_name: 'image',
101
+ type: {
102
+ name: 'Composite',
103
+ class_name: 'ImageObject'
104
+ }
105
+ }
106
+ }
107
+ }
108
+ }
109
+ end
110
+ end
111
+ end
112
+ end
@@ -0,0 +1,244 @@
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::VisualSearch::V1_0
7
+ module Models
8
+ #
9
+ # Defines an image list action.
10
+ #
11
+ class ImageModuleAction < ImageAction
12
+
13
+ include MsRestAzure
14
+
15
+
16
+ def initialize
17
+ @_type = "ImageModuleAction"
18
+ end
19
+
20
+ attr_accessor :_type
21
+
22
+ # @return [ImagesModule] A list of images.
23
+ attr_accessor :data
24
+
25
+
26
+ #
27
+ # Mapper for ImageModuleAction class as Ruby Hash.
28
+ # This will be used for serialization/deserialization.
29
+ #
30
+ def self.mapper()
31
+ {
32
+ client_side_validation: true,
33
+ required: false,
34
+ serialized_name: 'ImageModuleAction',
35
+ type: {
36
+ name: 'Composite',
37
+ class_name: 'ImageModuleAction',
38
+ model_properties: {
39
+ _type: {
40
+ client_side_validation: true,
41
+ required: true,
42
+ serialized_name: '_type',
43
+ type: {
44
+ name: 'String'
45
+ }
46
+ },
47
+ id: {
48
+ client_side_validation: true,
49
+ required: false,
50
+ read_only: true,
51
+ serialized_name: 'id',
52
+ type: {
53
+ name: 'String'
54
+ }
55
+ },
56
+ read_link: {
57
+ client_side_validation: true,
58
+ required: false,
59
+ read_only: true,
60
+ serialized_name: 'readLink',
61
+ type: {
62
+ name: 'String'
63
+ }
64
+ },
65
+ web_search_url: {
66
+ client_side_validation: true,
67
+ required: false,
68
+ read_only: true,
69
+ serialized_name: 'webSearchUrl',
70
+ type: {
71
+ name: 'String'
72
+ }
73
+ },
74
+ name: {
75
+ client_side_validation: true,
76
+ required: false,
77
+ read_only: true,
78
+ serialized_name: 'name',
79
+ type: {
80
+ name: 'String'
81
+ }
82
+ },
83
+ url: {
84
+ client_side_validation: true,
85
+ required: false,
86
+ read_only: true,
87
+ serialized_name: 'url',
88
+ type: {
89
+ name: 'String'
90
+ }
91
+ },
92
+ image: {
93
+ client_side_validation: true,
94
+ required: false,
95
+ read_only: true,
96
+ serialized_name: 'image',
97
+ type: {
98
+ name: 'Composite',
99
+ class_name: 'ImageObject'
100
+ }
101
+ },
102
+ description: {
103
+ client_side_validation: true,
104
+ required: false,
105
+ read_only: true,
106
+ serialized_name: 'description',
107
+ type: {
108
+ name: 'String'
109
+ }
110
+ },
111
+ alternate_name: {
112
+ client_side_validation: true,
113
+ required: false,
114
+ read_only: true,
115
+ serialized_name: 'alternateName',
116
+ type: {
117
+ name: 'String'
118
+ }
119
+ },
120
+ bing_id: {
121
+ client_side_validation: true,
122
+ required: false,
123
+ read_only: true,
124
+ serialized_name: 'bingId',
125
+ type: {
126
+ name: 'String'
127
+ }
128
+ },
129
+ thumbnail_url: {
130
+ client_side_validation: true,
131
+ required: false,
132
+ read_only: true,
133
+ serialized_name: 'thumbnailUrl',
134
+ type: {
135
+ name: 'String'
136
+ }
137
+ },
138
+ provider: {
139
+ client_side_validation: true,
140
+ required: false,
141
+ read_only: true,
142
+ serialized_name: 'provider',
143
+ type: {
144
+ name: 'Sequence',
145
+ element: {
146
+ client_side_validation: true,
147
+ required: false,
148
+ serialized_name: 'ThingElementType',
149
+ type: {
150
+ name: 'Composite',
151
+ class_name: 'Thing'
152
+ }
153
+ }
154
+ }
155
+ },
156
+ date_published: {
157
+ client_side_validation: true,
158
+ required: false,
159
+ read_only: true,
160
+ serialized_name: 'datePublished',
161
+ type: {
162
+ name: 'String'
163
+ }
164
+ },
165
+ text: {
166
+ client_side_validation: true,
167
+ required: false,
168
+ read_only: true,
169
+ serialized_name: 'text',
170
+ type: {
171
+ name: 'String'
172
+ }
173
+ },
174
+ result: {
175
+ client_side_validation: true,
176
+ required: false,
177
+ read_only: true,
178
+ serialized_name: 'result',
179
+ type: {
180
+ name: 'Sequence',
181
+ element: {
182
+ client_side_validation: true,
183
+ required: false,
184
+ serialized_name: 'ThingElementType',
185
+ type: {
186
+ name: 'Composite',
187
+ class_name: 'Thing'
188
+ }
189
+ }
190
+ }
191
+ },
192
+ display_name: {
193
+ client_side_validation: true,
194
+ required: false,
195
+ read_only: true,
196
+ serialized_name: 'displayName',
197
+ type: {
198
+ name: 'String'
199
+ }
200
+ },
201
+ is_top_action: {
202
+ client_side_validation: true,
203
+ required: false,
204
+ read_only: true,
205
+ serialized_name: 'isTopAction',
206
+ type: {
207
+ name: 'Boolean'
208
+ }
209
+ },
210
+ service_url: {
211
+ client_side_validation: true,
212
+ required: false,
213
+ read_only: true,
214
+ serialized_name: 'serviceUrl',
215
+ type: {
216
+ name: 'String'
217
+ }
218
+ },
219
+ action_type: {
220
+ client_side_validation: true,
221
+ required: false,
222
+ read_only: true,
223
+ serialized_name: 'actionType',
224
+ type: {
225
+ name: 'String'
226
+ }
227
+ },
228
+ data: {
229
+ client_side_validation: true,
230
+ required: false,
231
+ read_only: true,
232
+ serialized_name: 'data',
233
+ type: {
234
+ name: 'Composite',
235
+ class_name: 'ImagesModule'
236
+ }
237
+ }
238
+ }
239
+ }
240
+ }
241
+ end
242
+ end
243
+ end
244
+ end