pulp_container_client 2.15.6 → 2.16.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +27 -36
  3. data/docs/ContainerContainerDistribution.md +5 -5
  4. data/docs/ContainerContainerDistributionResponse.md +8 -8
  5. data/docs/ContainerContainerPushRepository.md +6 -6
  6. data/docs/ContainerContainerPushRepositoryResponse.md +12 -12
  7. data/docs/ContentBlobsApi.md +1 -3
  8. data/docs/ContentManifestsApi.md +1 -3
  9. data/docs/ContentSignaturesApi.md +1 -11
  10. data/docs/ContentTagsApi.md +1 -3
  11. data/docs/DistributionsContainerApi.md +10 -136
  12. data/docs/IndexDynamicApi.md +50 -0
  13. data/docs/IndexStaticApi.md +50 -0
  14. data/docs/PatchedcontainerContainerDistribution.md +5 -5
  15. data/docs/PatchedcontainerContainerPushRepository.md +6 -6
  16. data/docs/PulpContainerNamespacesApi.md +9 -23
  17. data/docs/RemotesContainerApi.md +9 -135
  18. data/docs/RepositoriesContainerApi.md +11 -137
  19. data/docs/RepositoriesContainerPushApi.md +10 -24
  20. data/docs/RepositoriesContainerPushVersionsApi.md +1 -3
  21. data/docs/RepositoriesContainerVersionsApi.md +1 -3
  22. data/docs/TokenApi.md +1 -1
  23. data/lib/pulp_container_client/api/content_blobs_api.rb +0 -3
  24. data/lib/pulp_container_client/api/content_manifests_api.rb +0 -3
  25. data/lib/pulp_container_client/api/content_signatures_api.rb +0 -15
  26. data/lib/pulp_container_client/api/content_tags_api.rb +0 -3
  27. data/lib/pulp_container_client/api/distributions_container_api.rb +0 -163
  28. data/lib/pulp_container_client/api/index_dynamic_api.rb +74 -0
  29. data/lib/pulp_container_client/api/index_static_api.rb +74 -0
  30. data/lib/pulp_container_client/api/pulp_container_namespaces_api.rb +0 -23
  31. data/lib/pulp_container_client/api/remotes_container_api.rb +0 -163
  32. data/lib/pulp_container_client/api/repositories_container_api.rb +2 -165
  33. data/lib/pulp_container_client/api/repositories_container_push_api.rb +0 -23
  34. data/lib/pulp_container_client/api/repositories_container_push_versions_api.rb +0 -3
  35. data/lib/pulp_container_client/api/repositories_container_versions_api.rb +0 -3
  36. data/lib/pulp_container_client/configuration.rb +2 -2
  37. data/lib/pulp_container_client/models/container_container_distribution.rb +20 -20
  38. data/lib/pulp_container_client/models/container_container_distribution_response.rb +29 -29
  39. data/lib/pulp_container_client/models/container_container_push_repository.rb +26 -26
  40. data/lib/pulp_container_client/models/container_container_push_repository_response.rb +49 -49
  41. data/lib/pulp_container_client/models/patchedcontainer_container_distribution.rb +20 -20
  42. data/lib/pulp_container_client/models/patchedcontainer_container_push_repository.rb +26 -26
  43. data/lib/pulp_container_client/version.rb +1 -1
  44. data/lib/pulp_container_client.rb +2 -4
  45. data/spec/api/content_blobs_api_spec.rb +0 -1
  46. data/spec/api/content_manifests_api_spec.rb +0 -1
  47. data/spec/api/content_signatures_api_spec.rb +0 -5
  48. data/spec/api/content_tags_api_spec.rb +0 -1
  49. data/spec/api/distributions_container_api_spec.rb +0 -35
  50. data/spec/{models/set_label_spec.rb → api/index_dynamic_api_spec.rb} +11 -13
  51. data/spec/{models/unset_label_spec.rb → api/index_static_api_spec.rb} +12 -8
  52. data/spec/api/pulp_container_namespaces_api_spec.rb +0 -9
  53. data/spec/api/remotes_container_api_spec.rb +0 -35
  54. data/spec/api/repositories_container_api_spec.rb +1 -36
  55. data/spec/api/repositories_container_push_api_spec.rb +0 -9
  56. data/spec/api/repositories_container_push_versions_api_spec.rb +0 -1
  57. data/spec/api/repositories_container_versions_api_spec.rb +0 -1
  58. data/spec/configuration_spec.rb +3 -3
  59. data/spec/models/container_container_distribution_response_spec.rb +4 -4
  60. data/spec/models/container_container_distribution_spec.rb +4 -4
  61. data/spec/models/container_container_push_repository_response_spec.rb +9 -9
  62. data/spec/models/container_container_push_repository_spec.rb +5 -5
  63. data/spec/models/patchedcontainer_container_distribution_spec.rb +4 -4
  64. data/spec/models/patchedcontainer_container_push_repository_spec.rb +5 -5
  65. metadata +57 -65
  66. data/docs/SetLabel.md +0 -19
  67. data/docs/SetLabelResponse.md +0 -19
  68. data/docs/UnsetLabel.md +0 -17
  69. data/docs/UnsetLabelResponse.md +0 -19
  70. data/lib/pulp_container_client/models/set_label.rb +0 -252
  71. data/lib/pulp_container_client/models/set_label_response.rb +0 -243
  72. data/lib/pulp_container_client/models/unset_label.rb +0 -242
  73. data/lib/pulp_container_client/models/unset_label_response.rb +0 -242
  74. data/spec/models/set_label_response_spec.rb +0 -47
  75. data/spec/models/unset_label_response_spec.rb +0 -47
@@ -1,242 +0,0 @@
1
- =begin
2
- #Pulp 3 API
3
-
4
- #Fetch, Upload, Organize, and Distribute Software Packages
5
-
6
- The version of the OpenAPI document: v3
7
- Contact: pulp-list@redhat.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module PulpContainerClient
16
- # Serializer for synchronously setting a label.
17
- class UnsetLabel
18
- attr_accessor :key
19
-
20
- # Attribute mapping from ruby-style variable name to JSON key.
21
- def self.attribute_map
22
- {
23
- :'key' => :'key'
24
- }
25
- end
26
-
27
- # Attribute type mapping.
28
- def self.openapi_types
29
- {
30
- :'key' => :'String'
31
- }
32
- end
33
-
34
- # List of attributes with nullable: true
35
- def self.openapi_nullable
36
- Set.new([
37
- ])
38
- end
39
-
40
- # Initializes the object
41
- # @param [Hash] attributes Model attributes in the form of hash
42
- def initialize(attributes = {})
43
- if (!attributes.is_a?(Hash))
44
- fail ArgumentError, "The input argument (attributes) must be a hash in `PulpContainerClient::UnsetLabel` initialize method"
45
- end
46
-
47
- # check to see if the attribute exists and convert string to symbol for hash key
48
- attributes = attributes.each_with_object({}) { |(k, v), h|
49
- if (!self.class.attribute_map.key?(k.to_sym))
50
- fail ArgumentError, "`#{k}` is not a valid attribute in `PulpContainerClient::UnsetLabel`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
51
- end
52
- h[k.to_sym] = v
53
- }
54
-
55
- if attributes.key?(:'key')
56
- self.key = attributes[:'key']
57
- end
58
- end
59
-
60
- # Show invalid properties with the reasons. Usually used together with valid?
61
- # @return Array for valid properties with the reasons
62
- def list_invalid_properties
63
- invalid_properties = Array.new
64
- if @key.nil?
65
- invalid_properties.push('invalid value for "key", key cannot be nil.')
66
- end
67
-
68
- if @key.to_s.length < 1
69
- invalid_properties.push('invalid value for "key", the character length must be great than or equal to 1.')
70
- end
71
-
72
- pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
73
- if @key !~ pattern
74
- invalid_properties.push("invalid value for \"key\", must conform to the pattern #{pattern}.")
75
- end
76
-
77
- invalid_properties
78
- end
79
-
80
- # Check to see if the all the properties in the model are valid
81
- # @return true if the model is valid
82
- def valid?
83
- return false if @key.nil?
84
- return false if @key.to_s.length < 1
85
- return false if @key !~ Regexp.new(/^[-a-zA-Z0-9_]+$/)
86
- true
87
- end
88
-
89
- # Custom attribute writer method with validation
90
- # @param [Object] key Value to be assigned
91
- def key=(key)
92
- if key.nil?
93
- fail ArgumentError, 'key cannot be nil'
94
- end
95
-
96
- if key.to_s.length < 1
97
- fail ArgumentError, 'invalid value for "key", the character length must be great than or equal to 1.'
98
- end
99
-
100
- pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
101
- if key !~ pattern
102
- fail ArgumentError, "invalid value for \"key\", must conform to the pattern #{pattern}."
103
- end
104
-
105
- @key = key
106
- end
107
-
108
- # Checks equality by comparing each attribute.
109
- # @param [Object] Object to be compared
110
- def ==(o)
111
- return true if self.equal?(o)
112
- self.class == o.class &&
113
- key == o.key
114
- end
115
-
116
- # @see the `==` method
117
- # @param [Object] Object to be compared
118
- def eql?(o)
119
- self == o
120
- end
121
-
122
- # Calculates hash code according to all attributes.
123
- # @return [Integer] Hash code
124
- def hash
125
- [key].hash
126
- end
127
-
128
- # Builds the object from hash
129
- # @param [Hash] attributes Model attributes in the form of hash
130
- # @return [Object] Returns the model itself
131
- def self.build_from_hash(attributes)
132
- new.build_from_hash(attributes)
133
- end
134
-
135
- # Builds the object from hash
136
- # @param [Hash] attributes Model attributes in the form of hash
137
- # @return [Object] Returns the model itself
138
- def build_from_hash(attributes)
139
- return nil unless attributes.is_a?(Hash)
140
- self.class.openapi_types.each_pair do |key, type|
141
- if type =~ /\AArray<(.*)>/i
142
- # check to ensure the input is an array given that the attribute
143
- # is documented as an array but the input is not
144
- if attributes[self.class.attribute_map[key]].is_a?(Array)
145
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
146
- end
147
- elsif !attributes[self.class.attribute_map[key]].nil?
148
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
149
- end # or else data not found in attributes(hash), not an issue as the data can be optional
150
- end
151
-
152
- self
153
- end
154
-
155
- # Deserializes the data based on type
156
- # @param string type Data type
157
- # @param string value Value to be deserialized
158
- # @return [Object] Deserialized data
159
- def _deserialize(type, value)
160
- case type.to_sym
161
- when :DateTime
162
- DateTime.parse(value)
163
- when :Date
164
- Date.parse(value)
165
- when :String
166
- value.to_s
167
- when :Integer
168
- value.to_i
169
- when :Float
170
- value.to_f
171
- when :Boolean
172
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
173
- true
174
- else
175
- false
176
- end
177
- when :Object
178
- # generic object (usually a Hash), return directly
179
- value
180
- when /\AArray<(?<inner_type>.+)>\z/
181
- inner_type = Regexp.last_match[:inner_type]
182
- value.map { |v| _deserialize(inner_type, v) }
183
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
184
- k_type = Regexp.last_match[:k_type]
185
- v_type = Regexp.last_match[:v_type]
186
- {}.tap do |hash|
187
- value.each do |k, v|
188
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
189
- end
190
- end
191
- else # model
192
- PulpContainerClient.const_get(type).build_from_hash(value)
193
- end
194
- end
195
-
196
- # Returns the string representation of the object
197
- # @return [String] String presentation of the object
198
- def to_s
199
- to_hash.to_s
200
- end
201
-
202
- # to_body is an alias to to_hash (backward compatibility)
203
- # @return [Hash] Returns the object in the form of hash
204
- def to_body
205
- to_hash
206
- end
207
-
208
- # Returns the object in the form of hash
209
- # @return [Hash] Returns the object in the form of hash
210
- def to_hash
211
- hash = {}
212
- self.class.attribute_map.each_pair do |attr, param|
213
- value = self.send(attr)
214
- if value.nil?
215
- is_nullable = self.class.openapi_nullable.include?(attr)
216
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
217
- end
218
-
219
- hash[param] = _to_hash(value)
220
- end
221
- hash
222
- end
223
-
224
- # Outputs non-array value in the form of hash
225
- # For object, use to_hash. Otherwise, just return the value
226
- # @param [Object] value Any valid value
227
- # @return [Hash] Returns the value in the form of hash
228
- def _to_hash(value)
229
- if value.is_a?(Array)
230
- value.compact.map { |v| _to_hash(v) }
231
- elsif value.is_a?(Hash)
232
- {}.tap do |hash|
233
- value.each { |k, v| hash[k] = _to_hash(v) }
234
- end
235
- elsif value.respond_to? :to_hash
236
- value.to_hash
237
- else
238
- value
239
- end
240
- end
241
- end
242
- end
@@ -1,242 +0,0 @@
1
- =begin
2
- #Pulp 3 API
3
-
4
- #Fetch, Upload, Organize, and Distribute Software Packages
5
-
6
- The version of the OpenAPI document: v3
7
- Contact: pulp-list@redhat.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'date'
14
-
15
- module PulpContainerClient
16
- # Serializer for synchronously setting a label.
17
- class UnsetLabelResponse
18
- attr_accessor :key
19
-
20
- attr_accessor :value
21
-
22
- # Attribute mapping from ruby-style variable name to JSON key.
23
- def self.attribute_map
24
- {
25
- :'key' => :'key',
26
- :'value' => :'value'
27
- }
28
- end
29
-
30
- # Attribute type mapping.
31
- def self.openapi_types
32
- {
33
- :'key' => :'String',
34
- :'value' => :'String'
35
- }
36
- end
37
-
38
- # List of attributes with nullable: true
39
- def self.openapi_nullable
40
- Set.new([
41
- ])
42
- end
43
-
44
- # Initializes the object
45
- # @param [Hash] attributes Model attributes in the form of hash
46
- def initialize(attributes = {})
47
- if (!attributes.is_a?(Hash))
48
- fail ArgumentError, "The input argument (attributes) must be a hash in `PulpContainerClient::UnsetLabelResponse` initialize method"
49
- end
50
-
51
- # check to see if the attribute exists and convert string to symbol for hash key
52
- attributes = attributes.each_with_object({}) { |(k, v), h|
53
- if (!self.class.attribute_map.key?(k.to_sym))
54
- fail ArgumentError, "`#{k}` is not a valid attribute in `PulpContainerClient::UnsetLabelResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
55
- end
56
- h[k.to_sym] = v
57
- }
58
-
59
- if attributes.key?(:'key')
60
- self.key = attributes[:'key']
61
- end
62
-
63
- if attributes.key?(:'value')
64
- self.value = attributes[:'value']
65
- end
66
- end
67
-
68
- # Show invalid properties with the reasons. Usually used together with valid?
69
- # @return Array for valid properties with the reasons
70
- def list_invalid_properties
71
- invalid_properties = Array.new
72
- if @key.nil?
73
- invalid_properties.push('invalid value for "key", key cannot be nil.')
74
- end
75
-
76
- pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
77
- if @key !~ pattern
78
- invalid_properties.push("invalid value for \"key\", must conform to the pattern #{pattern}.")
79
- end
80
-
81
- invalid_properties
82
- end
83
-
84
- # Check to see if the all the properties in the model are valid
85
- # @return true if the model is valid
86
- def valid?
87
- return false if @key.nil?
88
- return false if @key !~ Regexp.new(/^[-a-zA-Z0-9_]+$/)
89
- true
90
- end
91
-
92
- # Custom attribute writer method with validation
93
- # @param [Object] key Value to be assigned
94
- def key=(key)
95
- if key.nil?
96
- fail ArgumentError, 'key cannot be nil'
97
- end
98
-
99
- pattern = Regexp.new(/^[-a-zA-Z0-9_]+$/)
100
- if key !~ pattern
101
- fail ArgumentError, "invalid value for \"key\", must conform to the pattern #{pattern}."
102
- end
103
-
104
- @key = key
105
- end
106
-
107
- # Checks equality by comparing each attribute.
108
- # @param [Object] Object to be compared
109
- def ==(o)
110
- return true if self.equal?(o)
111
- self.class == o.class &&
112
- key == o.key &&
113
- value == o.value
114
- end
115
-
116
- # @see the `==` method
117
- # @param [Object] Object to be compared
118
- def eql?(o)
119
- self == o
120
- end
121
-
122
- # Calculates hash code according to all attributes.
123
- # @return [Integer] Hash code
124
- def hash
125
- [key, value].hash
126
- end
127
-
128
- # Builds the object from hash
129
- # @param [Hash] attributes Model attributes in the form of hash
130
- # @return [Object] Returns the model itself
131
- def self.build_from_hash(attributes)
132
- new.build_from_hash(attributes)
133
- end
134
-
135
- # Builds the object from hash
136
- # @param [Hash] attributes Model attributes in the form of hash
137
- # @return [Object] Returns the model itself
138
- def build_from_hash(attributes)
139
- return nil unless attributes.is_a?(Hash)
140
- self.class.openapi_types.each_pair do |key, type|
141
- if type =~ /\AArray<(.*)>/i
142
- # check to ensure the input is an array given that the attribute
143
- # is documented as an array but the input is not
144
- if attributes[self.class.attribute_map[key]].is_a?(Array)
145
- self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
146
- end
147
- elsif !attributes[self.class.attribute_map[key]].nil?
148
- self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
149
- end # or else data not found in attributes(hash), not an issue as the data can be optional
150
- end
151
-
152
- self
153
- end
154
-
155
- # Deserializes the data based on type
156
- # @param string type Data type
157
- # @param string value Value to be deserialized
158
- # @return [Object] Deserialized data
159
- def _deserialize(type, value)
160
- case type.to_sym
161
- when :DateTime
162
- DateTime.parse(value)
163
- when :Date
164
- Date.parse(value)
165
- when :String
166
- value.to_s
167
- when :Integer
168
- value.to_i
169
- when :Float
170
- value.to_f
171
- when :Boolean
172
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
173
- true
174
- else
175
- false
176
- end
177
- when :Object
178
- # generic object (usually a Hash), return directly
179
- value
180
- when /\AArray<(?<inner_type>.+)>\z/
181
- inner_type = Regexp.last_match[:inner_type]
182
- value.map { |v| _deserialize(inner_type, v) }
183
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
184
- k_type = Regexp.last_match[:k_type]
185
- v_type = Regexp.last_match[:v_type]
186
- {}.tap do |hash|
187
- value.each do |k, v|
188
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
189
- end
190
- end
191
- else # model
192
- PulpContainerClient.const_get(type).build_from_hash(value)
193
- end
194
- end
195
-
196
- # Returns the string representation of the object
197
- # @return [String] String presentation of the object
198
- def to_s
199
- to_hash.to_s
200
- end
201
-
202
- # to_body is an alias to to_hash (backward compatibility)
203
- # @return [Hash] Returns the object in the form of hash
204
- def to_body
205
- to_hash
206
- end
207
-
208
- # Returns the object in the form of hash
209
- # @return [Hash] Returns the object in the form of hash
210
- def to_hash
211
- hash = {}
212
- self.class.attribute_map.each_pair do |attr, param|
213
- value = self.send(attr)
214
- if value.nil?
215
- is_nullable = self.class.openapi_nullable.include?(attr)
216
- next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
217
- end
218
-
219
- hash[param] = _to_hash(value)
220
- end
221
- hash
222
- end
223
-
224
- # Outputs non-array value in the form of hash
225
- # For object, use to_hash. Otherwise, just return the value
226
- # @param [Object] value Any valid value
227
- # @return [Hash] Returns the value in the form of hash
228
- def _to_hash(value)
229
- if value.is_a?(Array)
230
- value.compact.map { |v| _to_hash(v) }
231
- elsif value.is_a?(Hash)
232
- {}.tap do |hash|
233
- value.each { |k, v| hash[k] = _to_hash(v) }
234
- end
235
- elsif value.respond_to? :to_hash
236
- value.to_hash
237
- else
238
- value
239
- end
240
- end
241
- end
242
- end
@@ -1,47 +0,0 @@
1
- =begin
2
- #Pulp 3 API
3
-
4
- #Fetch, Upload, Organize, and Distribute Software Packages
5
-
6
- The version of the OpenAPI document: v3
7
- Contact: pulp-list@redhat.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for PulpContainerClient::SetLabelResponse
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'SetLabelResponse' do
21
- before do
22
- # run before each test
23
- @instance = PulpContainerClient::SetLabelResponse.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of SetLabelResponse' do
31
- it 'should create an instance of SetLabelResponse' do
32
- expect(@instance).to be_instance_of(PulpContainerClient::SetLabelResponse)
33
- end
34
- end
35
- describe 'test attribute "key"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- describe 'test attribute "value"' do
42
- it 'should work' do
43
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
- end
45
- end
46
-
47
- end
@@ -1,47 +0,0 @@
1
- =begin
2
- #Pulp 3 API
3
-
4
- #Fetch, Upload, Organize, and Distribute Software Packages
5
-
6
- The version of the OpenAPI document: v3
7
- Contact: pulp-list@redhat.com
8
- Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 4.3.1
10
-
11
- =end
12
-
13
- require 'spec_helper'
14
- require 'json'
15
- require 'date'
16
-
17
- # Unit tests for PulpContainerClient::UnsetLabelResponse
18
- # Automatically generated by openapi-generator (https://openapi-generator.tech)
19
- # Please update as you see appropriate
20
- describe 'UnsetLabelResponse' do
21
- before do
22
- # run before each test
23
- @instance = PulpContainerClient::UnsetLabelResponse.new
24
- end
25
-
26
- after do
27
- # run after each test
28
- end
29
-
30
- describe 'test an instance of UnsetLabelResponse' do
31
- it 'should create an instance of UnsetLabelResponse' do
32
- expect(@instance).to be_instance_of(PulpContainerClient::UnsetLabelResponse)
33
- end
34
- end
35
- describe 'test attribute "key"' do
36
- it 'should work' do
37
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
38
- end
39
- end
40
-
41
- describe 'test attribute "value"' do
42
- it 'should work' do
43
- # assertion here. ref: https://www.relishapp.com/rspec/rspec-expectations/docs/built-in-matchers
44
- end
45
- end
46
-
47
- end