ionoscloud 6.0.0 → 6.1.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 (210) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +70 -0
  3. data/README.md +10 -1
  4. data/docs/CHANGELOG.md +22 -0
  5. data/docs/README.md +2 -2
  6. data/docs/api/ApplicationLoadBalancersApi.md +1586 -0
  7. data/docs/api/BackupUnitsApi.md +14 -14
  8. data/docs/api/ContractResourcesApi.md +2 -2
  9. data/docs/api/DataCentersApi.md +15 -15
  10. data/docs/api/DefaultApi.md +2 -2
  11. data/docs/api/FirewallRulesApi.md +14 -14
  12. data/docs/api/FlowLogsApi.md +2 -2
  13. data/docs/api/IPBlocksApi.md +14 -14
  14. data/docs/api/ImagesApi.md +10 -10
  15. data/docs/api/KubernetesApi.md +30 -30
  16. data/docs/api/LANsApi.md +22 -22
  17. data/docs/api/LabelsApi.md +54 -54
  18. data/docs/api/LoadBalancersApi.md +22 -22
  19. data/docs/api/LocationsApi.md +6 -6
  20. data/docs/api/NATGatewaysApi.md +26 -26
  21. data/docs/api/NetworkInterfacesApi.md +14 -14
  22. data/docs/api/NetworkLoadBalancersApi.md +38 -38
  23. data/docs/api/PrivateCrossConnectsApi.md +10 -10
  24. data/docs/api/RequestsApi.md +8 -8
  25. data/docs/api/ServersApi.md +62 -52
  26. data/docs/api/SnapshotsApi.md +10 -10
  27. data/docs/api/TargetGroupsApi.md +516 -0
  28. data/docs/api/UserManagementApi.md +50 -50
  29. data/docs/api/UserS3KeysApi.md +12 -12
  30. data/docs/api/VolumesApi.md +18 -18
  31. data/docs/models/ApplicationLoadBalancer.md +28 -0
  32. data/docs/models/ApplicationLoadBalancerEntities.md +18 -0
  33. data/docs/models/ApplicationLoadBalancerForwardingRule.md +26 -0
  34. data/docs/models/ApplicationLoadBalancerForwardingRuleProperties.md +30 -0
  35. data/docs/models/ApplicationLoadBalancerForwardingRulePut.md +24 -0
  36. data/docs/models/ApplicationLoadBalancerForwardingRules.md +30 -0
  37. data/docs/models/ApplicationLoadBalancerHttpRule.md +34 -0
  38. data/docs/models/ApplicationLoadBalancerHttpRuleCondition.md +26 -0
  39. data/docs/models/ApplicationLoadBalancerProperties.md +26 -0
  40. data/docs/models/ApplicationLoadBalancerPut.md +24 -0
  41. data/docs/models/ApplicationLoadBalancers.md +30 -0
  42. data/docs/models/AttachedVolumes.md +1 -1
  43. data/docs/models/BackupUnits.md +1 -1
  44. data/docs/models/BalancedNics.md +1 -1
  45. data/docs/models/Cdroms.md +1 -1
  46. data/docs/models/Contracts.md +1 -1
  47. data/docs/models/Datacenters.md +1 -1
  48. data/docs/models/ErrorMessage.md +1 -1
  49. data/docs/models/FirewallRules.md +1 -1
  50. data/docs/models/FirewallruleProperties.md +1 -1
  51. data/docs/models/FlowLogs.md +1 -1
  52. data/docs/models/GroupMembers.md +1 -1
  53. data/docs/models/GroupShares.md +1 -1
  54. data/docs/models/GroupUsers.md +1 -1
  55. data/docs/models/Groups.md +1 -1
  56. data/docs/models/Images.md +1 -1
  57. data/docs/models/IpBlocks.md +3 -3
  58. data/docs/models/KubernetesClusterProperties.md +1 -1
  59. data/docs/models/KubernetesClusterPropertiesForPost.md +1 -1
  60. data/docs/models/KubernetesClusterPropertiesForPut.md +1 -1
  61. data/docs/models/KubernetesClusters.md +1 -1
  62. data/docs/models/KubernetesNodePoolProperties.md +1 -1
  63. data/docs/models/KubernetesNodePoolPropertiesForPost.md +1 -1
  64. data/docs/models/KubernetesNodePoolPropertiesForPut.md +1 -1
  65. data/docs/models/KubernetesNodePools.md +1 -1
  66. data/docs/models/KubernetesNodes.md +1 -1
  67. data/docs/models/LabelResources.md +1 -1
  68. data/docs/models/Labels.md +1 -1
  69. data/docs/models/LanNics.md +1 -1
  70. data/docs/models/Lans.md +1 -1
  71. data/docs/models/Loadbalancers.md +1 -1
  72. data/docs/models/Locations.md +1 -1
  73. data/docs/models/NatGatewayProperties.md +1 -1
  74. data/docs/models/NatGatewayRules.md +1 -1
  75. data/docs/models/NatGateways.md +1 -1
  76. data/docs/models/NetworkLoadBalancerForwardingRuleHealthCheck.md +4 -4
  77. data/docs/models/NetworkLoadBalancerForwardingRuleProperties.md +5 -5
  78. data/docs/models/NetworkLoadBalancerForwardingRuleTarget.md +3 -3
  79. data/docs/models/NetworkLoadBalancerForwardingRuleTargetHealthCheck.md +3 -3
  80. data/docs/models/NetworkLoadBalancerForwardingRules.md +1 -1
  81. data/docs/models/NetworkLoadBalancerProperties.md +2 -2
  82. data/docs/models/NetworkLoadBalancers.md +1 -1
  83. data/docs/models/NicProperties.md +3 -3
  84. data/docs/models/Nics.md +1 -1
  85. data/docs/models/PrivateCrossConnects.md +1 -1
  86. data/docs/models/Requests.md +3 -3
  87. data/docs/models/ResourceGroups.md +1 -1
  88. data/docs/models/Resources.md +1 -1
  89. data/docs/models/ResourcesUsers.md +1 -1
  90. data/docs/models/S3Keys.md +1 -1
  91. data/docs/models/Servers.md +1 -1
  92. data/docs/models/Snapshots.md +1 -1
  93. data/docs/models/TargetGroup.md +26 -0
  94. data/docs/models/TargetGroupHealthCheck.md +22 -0
  95. data/docs/models/TargetGroupHttpHealthCheck.md +28 -0
  96. data/docs/models/TargetGroupProperties.md +28 -0
  97. data/docs/models/TargetGroupPut.md +24 -0
  98. data/docs/models/TargetGroupTarget.md +26 -0
  99. data/docs/models/TargetGroups.md +30 -0
  100. data/docs/models/Templates.md +1 -1
  101. data/docs/models/Users.md +1 -1
  102. data/docs/models/VolumeProperties.md +4 -2
  103. data/docs/models/Volumes.md +1 -1
  104. data/git_push.sh +0 -3
  105. data/lib/ionoscloud/api/_api.rb +2 -2
  106. data/lib/ionoscloud/api/application_load_balancers_api.rb +1690 -0
  107. data/lib/ionoscloud/api/backup_units_api.rb +14 -14
  108. data/lib/ionoscloud/api/contract_resources_api.rb +2 -2
  109. data/lib/ionoscloud/api/data_centers_api.rb +16 -16
  110. data/lib/ionoscloud/api/firewall_rules_api.rb +14 -14
  111. data/lib/ionoscloud/api/flow_logs_api.rb +2 -2
  112. data/lib/ionoscloud/api/images_api.rb +10 -10
  113. data/lib/ionoscloud/api/ip_blocks_api.rb +14 -14
  114. data/lib/ionoscloud/api/kubernetes_api.rb +30 -30
  115. data/lib/ionoscloud/api/labels_api.rb +54 -54
  116. data/lib/ionoscloud/api/lans_api.rb +22 -22
  117. data/lib/ionoscloud/api/load_balancers_api.rb +22 -22
  118. data/lib/ionoscloud/api/locations_api.rb +6 -6
  119. data/lib/ionoscloud/api/nat_gateways_api.rb +26 -26
  120. data/lib/ionoscloud/api/network_interfaces_api.rb +14 -14
  121. data/lib/ionoscloud/api/network_load_balancers_api.rb +38 -38
  122. data/lib/ionoscloud/api/private_cross_connects_api.rb +10 -10
  123. data/lib/ionoscloud/api/requests_api.rb +8 -8
  124. data/lib/ionoscloud/api/servers_api.rb +52 -52
  125. data/lib/ionoscloud/api/snapshots_api.rb +10 -10
  126. data/lib/ionoscloud/api/target_groups_api.rb +530 -0
  127. data/lib/ionoscloud/api/user_management_api.rb +50 -50
  128. data/lib/ionoscloud/api/user_s3_keys_api.rb +12 -12
  129. data/lib/ionoscloud/api/volumes_api.rb +19 -19
  130. data/lib/ionoscloud/api_client.rb +1 -1
  131. data/lib/ionoscloud/configuration.rb +11 -26
  132. data/lib/ionoscloud/models/application_load_balancer.rb +319 -0
  133. data/lib/ionoscloud/models/application_load_balancer_entities.rb +226 -0
  134. data/lib/ionoscloud/models/application_load_balancer_forwarding_rule.rb +302 -0
  135. data/lib/ionoscloud/models/application_load_balancer_forwarding_rule_properties.rb +389 -0
  136. data/lib/ionoscloud/models/application_load_balancer_forwarding_rule_put.rb +285 -0
  137. data/lib/ionoscloud/models/application_load_balancer_forwarding_rules.rb +334 -0
  138. data/lib/ionoscloud/models/application_load_balancer_http_rule.rb +427 -0
  139. data/lib/ionoscloud/models/application_load_balancer_http_rule_condition.rb +355 -0
  140. data/lib/ionoscloud/models/application_load_balancer_properties.rb +314 -0
  141. data/lib/ionoscloud/models/application_load_balancer_put.rb +285 -0
  142. data/lib/ionoscloud/models/application_load_balancers.rb +334 -0
  143. data/lib/ionoscloud/models/attached_volumes.rb +1 -1
  144. data/lib/ionoscloud/models/backup_units.rb +1 -1
  145. data/lib/ionoscloud/models/balanced_nics.rb +1 -1
  146. data/lib/ionoscloud/models/cdroms.rb +1 -1
  147. data/lib/ionoscloud/models/contracts.rb +1 -1
  148. data/lib/ionoscloud/models/datacenters.rb +1 -1
  149. data/lib/ionoscloud/models/error_message.rb +1 -1
  150. data/lib/ionoscloud/models/firewall_rules.rb +1 -1
  151. data/lib/ionoscloud/models/firewallrule_properties.rb +6 -1
  152. data/lib/ionoscloud/models/flow_logs.rb +1 -1
  153. data/lib/ionoscloud/models/group_members.rb +1 -1
  154. data/lib/ionoscloud/models/group_shares.rb +1 -1
  155. data/lib/ionoscloud/models/group_users.rb +1 -1
  156. data/lib/ionoscloud/models/groups.rb +1 -1
  157. data/lib/ionoscloud/models/image_properties.rb +2 -2
  158. data/lib/ionoscloud/models/images.rb +1 -1
  159. data/lib/ionoscloud/models/ip_blocks.rb +3 -3
  160. data/lib/ionoscloud/models/kubernetes_cluster_properties.rb +1 -1
  161. data/lib/ionoscloud/models/kubernetes_cluster_properties_for_post.rb +1 -1
  162. data/lib/ionoscloud/models/kubernetes_cluster_properties_for_put.rb +1 -1
  163. data/lib/ionoscloud/models/kubernetes_clusters.rb +1 -1
  164. data/lib/ionoscloud/models/kubernetes_node_pool_properties.rb +1 -1
  165. data/lib/ionoscloud/models/kubernetes_node_pool_properties_for_post.rb +1 -1
  166. data/lib/ionoscloud/models/kubernetes_node_pool_properties_for_put.rb +1 -1
  167. data/lib/ionoscloud/models/kubernetes_node_pools.rb +1 -1
  168. data/lib/ionoscloud/models/kubernetes_nodes.rb +1 -1
  169. data/lib/ionoscloud/models/label_resources.rb +1 -1
  170. data/lib/ionoscloud/models/labels.rb +1 -1
  171. data/lib/ionoscloud/models/lan_nics.rb +1 -1
  172. data/lib/ionoscloud/models/lans.rb +1 -1
  173. data/lib/ionoscloud/models/loadbalancer_properties.rb +1 -0
  174. data/lib/ionoscloud/models/loadbalancers.rb +1 -1
  175. data/lib/ionoscloud/models/locations.rb +1 -1
  176. data/lib/ionoscloud/models/nat_gateway_properties.rb +1 -1
  177. data/lib/ionoscloud/models/nat_gateway_rules.rb +1 -1
  178. data/lib/ionoscloud/models/nat_gateways.rb +1 -1
  179. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_health_check.rb +4 -4
  180. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_properties.rb +5 -5
  181. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_target.rb +3 -3
  182. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_target_health_check.rb +3 -3
  183. data/lib/ionoscloud/models/network_load_balancer_forwarding_rules.rb +1 -1
  184. data/lib/ionoscloud/models/network_load_balancer_properties.rb +2 -2
  185. data/lib/ionoscloud/models/network_load_balancers.rb +1 -1
  186. data/lib/ionoscloud/models/nic_properties.rb +4 -3
  187. data/lib/ionoscloud/models/nics.rb +1 -1
  188. data/lib/ionoscloud/models/private_cross_connects.rb +1 -1
  189. data/lib/ionoscloud/models/requests.rb +3 -3
  190. data/lib/ionoscloud/models/resource_groups.rb +1 -1
  191. data/lib/ionoscloud/models/resources.rb +1 -1
  192. data/lib/ionoscloud/models/resources_users.rb +1 -1
  193. data/lib/ionoscloud/models/s3_keys.rb +1 -1
  194. data/lib/ionoscloud/models/servers.rb +1 -1
  195. data/lib/ionoscloud/models/snapshot_properties.rb +2 -2
  196. data/lib/ionoscloud/models/snapshots.rb +1 -1
  197. data/lib/ionoscloud/models/target_group.rb +302 -0
  198. data/lib/ionoscloud/models/target_group_health_check.rb +263 -0
  199. data/lib/ionoscloud/models/target_group_http_health_check.rb +373 -0
  200. data/lib/ionoscloud/models/target_group_properties.rb +376 -0
  201. data/lib/ionoscloud/models/target_group_put.rb +285 -0
  202. data/lib/ionoscloud/models/target_group_target.rb +314 -0
  203. data/lib/ionoscloud/models/target_groups.rb +334 -0
  204. data/lib/ionoscloud/models/templates.rb +1 -1
  205. data/lib/ionoscloud/models/users.rb +1 -1
  206. data/lib/ionoscloud/models/volume_properties.rb +25 -7
  207. data/lib/ionoscloud/models/volumes.rb +1 -1
  208. data/lib/ionoscloud/version.rb +1 -1
  209. data/lib/ionoscloud.rb +20 -0
  210. metadata +46 -5
@@ -0,0 +1,389 @@
1
+ =begin
2
+ #CLOUD API
3
+
4
+ #IONOS Enterprise-grade Infrastructure as a Service (IaaS) solutions can be managed through the Cloud API, in addition or as an alternative to the \"Data Center Designer\" (DCD) browser-based tool. Both methods employ consistent concepts and features, deliver similar power and flexibility, and can be used to perform a multitude of management tasks, including adding servers, volumes, configuring networks, and so on.
5
+
6
+ The version of the OpenAPI document: 6.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.2.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Ionoscloud
17
+ class ApplicationLoadBalancerForwardingRuleProperties
18
+
19
+ # The name of the Application Load Balancer forwarding rule.
20
+ attr_accessor :name
21
+
22
+
23
+ # Balancing protocol
24
+ attr_accessor :protocol
25
+
26
+
27
+ # Listening (inbound) IP
28
+ attr_accessor :listener_ip
29
+
30
+
31
+ # Listening (inbound) port number; valid range is 1 to 65535.
32
+ attr_accessor :listener_port
33
+
34
+
35
+ # The maximum time in milliseconds to wait for the client to acknowledge or send data; default is 50,000 (50 seconds).
36
+ attr_accessor :client_timeout
37
+
38
+
39
+ # Array of items in the collection.
40
+ attr_accessor :server_certificates
41
+
42
+
43
+ # An array of items in the collection. The original order of rules is perserved during processing, except for Forward-type rules are processed after the rules with other action defined. The relative order of Forward-type rules is also preserved during the processing.
44
+ attr_accessor :http_rules
45
+
46
+ class EnumAttributeValidator
47
+ attr_reader :datatype
48
+ attr_reader :allowable_values
49
+
50
+ def initialize(datatype, allowable_values)
51
+ @allowable_values = allowable_values.map do |value|
52
+ case datatype.to_s
53
+ when /Integer/i
54
+ value.to_i
55
+ when /Float/i
56
+ value.to_f
57
+ else
58
+ value
59
+ end
60
+ end
61
+ end
62
+
63
+ def valid?(value)
64
+ !value || allowable_values.include?(value)
65
+ end
66
+ end
67
+
68
+ # Attribute mapping from ruby-style variable name to JSON key.
69
+ def self.attribute_map
70
+ {
71
+
72
+ :'name' => :'name',
73
+
74
+ :'protocol' => :'protocol',
75
+
76
+ :'listener_ip' => :'listenerIp',
77
+
78
+ :'listener_port' => :'listenerPort',
79
+
80
+ :'client_timeout' => :'clientTimeout',
81
+
82
+ :'server_certificates' => :'serverCertificates',
83
+
84
+ :'http_rules' => :'httpRules'
85
+ }
86
+ end
87
+
88
+ # Returns all the JSON keys this model knows about
89
+ def self.acceptable_attributes
90
+ attribute_map.values
91
+ end
92
+
93
+ # Attribute type mapping.
94
+ def self.openapi_types
95
+ {
96
+
97
+ :'name' => :'String',
98
+
99
+ :'protocol' => :'String',
100
+
101
+ :'listener_ip' => :'String',
102
+
103
+ :'listener_port' => :'Integer',
104
+
105
+ :'client_timeout' => :'Integer',
106
+
107
+ :'server_certificates' => :'Array<String>',
108
+
109
+ :'http_rules' => :'Array<ApplicationLoadBalancerHttpRule>'
110
+ }
111
+ end
112
+
113
+ # List of attributes with nullable: true
114
+ def self.openapi_nullable
115
+ Set.new([
116
+
117
+
118
+
119
+
120
+
121
+
122
+
123
+ ])
124
+ end
125
+
126
+ # Initializes the object
127
+ # @param [Hash] attributes Model attributes in the form of hash
128
+ def initialize(attributes = {})
129
+ if (!attributes.is_a?(Hash))
130
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Ionoscloud::ApplicationLoadBalancerForwardingRuleProperties` initialize method"
131
+ end
132
+
133
+ # check to see if the attribute exists and convert string to symbol for hash key
134
+ attributes = attributes.each_with_object({}) { |(k, v), h|
135
+ if (!self.class.attribute_map.key?(k.to_sym))
136
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Ionoscloud::ApplicationLoadBalancerForwardingRuleProperties`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
137
+ end
138
+ h[k.to_sym] = v
139
+ }
140
+
141
+
142
+ if attributes.key?(:'name')
143
+ self.name = attributes[:'name']
144
+ end
145
+
146
+
147
+ if attributes.key?(:'protocol')
148
+ self.protocol = attributes[:'protocol']
149
+ end
150
+
151
+
152
+ if attributes.key?(:'listener_ip')
153
+ self.listener_ip = attributes[:'listener_ip']
154
+ end
155
+
156
+
157
+ if attributes.key?(:'listener_port')
158
+ self.listener_port = attributes[:'listener_port']
159
+ end
160
+
161
+
162
+ if attributes.key?(:'client_timeout')
163
+ self.client_timeout = attributes[:'client_timeout']
164
+ end
165
+
166
+
167
+ if attributes.key?(:'server_certificates') && (value = attributes[:'server_certificates']).is_a?(Array)
168
+ self.server_certificates = value
169
+ end
170
+
171
+
172
+ if attributes.key?(:'http_rules') && (value = attributes[:'http_rules']).is_a?(Array)
173
+ self.http_rules = value
174
+ end
175
+ end
176
+
177
+ # Show invalid properties with the reasons. Usually used together with valid?
178
+ # @return Array for valid properties with the reasons
179
+ def list_invalid_properties
180
+ invalid_properties = Array.new
181
+
182
+ if @name.nil?
183
+ invalid_properties.push('invalid value for "name", name cannot be nil.')
184
+ end
185
+
186
+
187
+ if @protocol.nil?
188
+ invalid_properties.push('invalid value for "protocol", protocol cannot be nil.')
189
+ end
190
+
191
+
192
+ if @listener_ip.nil?
193
+ invalid_properties.push('invalid value for "listener_ip", listener_ip cannot be nil.')
194
+ end
195
+
196
+
197
+ if @listener_port.nil?
198
+ invalid_properties.push('invalid value for "listener_port", listener_port cannot be nil.')
199
+ end
200
+
201
+
202
+
203
+
204
+ invalid_properties
205
+ end
206
+
207
+ # Check to see if the all the properties in the model are valid
208
+ # @return true if the model is valid
209
+ def valid?
210
+
211
+ return false if @name.nil?
212
+
213
+ return false if @protocol.nil?
214
+ protocol_validator = EnumAttributeValidator.new('String', ["HTTP"])
215
+ return false unless protocol_validator.valid?(@protocol)
216
+
217
+ return false if @listener_ip.nil?
218
+
219
+ return false if @listener_port.nil?
220
+
221
+
222
+
223
+ true
224
+ end
225
+
226
+
227
+
228
+ # Custom attribute writer method checking allowed values (enum).
229
+ # @param [Object] protocol Object to be assigned
230
+ def protocol=(protocol)
231
+ validator = EnumAttributeValidator.new('String', ["HTTP"])
232
+ unless validator.valid?(protocol)
233
+ fail ArgumentError, "invalid value for \"protocol\", must be one of #{validator.allowable_values}."
234
+ end
235
+ @protocol = protocol
236
+ end
237
+
238
+
239
+
240
+
241
+
242
+
243
+ # Checks equality by comparing each attribute.
244
+ # @param [Object] Object to be compared
245
+ def ==(o)
246
+ return true if self.equal?(o)
247
+ self.class == o.class &&
248
+ name == o.name &&
249
+ protocol == o.protocol &&
250
+ listener_ip == o.listener_ip &&
251
+ listener_port == o.listener_port &&
252
+ client_timeout == o.client_timeout &&
253
+ server_certificates == o.server_certificates &&
254
+ http_rules == o.http_rules
255
+ end
256
+
257
+ # @see the `==` method
258
+ # @param [Object] Object to be compared
259
+ def eql?(o)
260
+ self == o
261
+ end
262
+
263
+ # Calculates hash code according to all attributes.
264
+ # @return [Integer] Hash code
265
+ def hash
266
+ [name, protocol, listener_ip, listener_port, client_timeout, server_certificates, http_rules].hash
267
+ end
268
+
269
+ # Builds the object from hash
270
+ # @param [Hash] attributes Model attributes in the form of hash
271
+ # @return [Object] Returns the model itself
272
+ def self.build_from_hash(attributes)
273
+ new.build_from_hash(attributes)
274
+ end
275
+
276
+ # Builds the object from hash
277
+ # @param [Hash] attributes Model attributes in the form of hash
278
+ # @return [Object] Returns the model itself
279
+ def build_from_hash(attributes)
280
+ return nil unless attributes.is_a?(Hash)
281
+ self.class.openapi_types.each_pair do |key, type|
282
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
283
+ self.send("#{key}=", nil)
284
+ elsif type =~ /\AArray<(.*)>/i
285
+ # check to ensure the input is an array given that the attribute
286
+ # is documented as an array but the input is not
287
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
288
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
289
+ end
290
+ elsif !attributes[self.class.attribute_map[key]].nil?
291
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
292
+ end
293
+ end
294
+
295
+ self
296
+ end
297
+
298
+ # Deserializes the data based on type
299
+ # @param string type Data type
300
+ # @param string value Value to be deserialized
301
+ # @return [Object] Deserialized data
302
+ def _deserialize(type, value)
303
+ case type.to_sym
304
+ when :Time
305
+ Time.parse(value)
306
+ when :Date
307
+ Date.parse(value)
308
+ when :String
309
+ value.to_s
310
+ when :Integer
311
+ value.to_i
312
+ when :Float
313
+ value.to_f
314
+ when :Boolean
315
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
316
+ true
317
+ else
318
+ false
319
+ end
320
+ when :Object
321
+ # generic object (usually a Hash), return directly
322
+ value
323
+ when /\AArray<(?<inner_type>.+)>\z/
324
+ inner_type = Regexp.last_match[:inner_type]
325
+ value.map { |v| _deserialize(inner_type, v) }
326
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
327
+ k_type = Regexp.last_match[:k_type]
328
+ v_type = Regexp.last_match[:v_type]
329
+ {}.tap do |hash|
330
+ value.each do |k, v|
331
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
332
+ end
333
+ end
334
+ else # model
335
+ # models (e.g. Pet) or oneOf
336
+ klass = Ionoscloud.const_get(type)
337
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
338
+ end
339
+ end
340
+
341
+ # Returns the string representation of the object
342
+ # @return [String] String presentation of the object
343
+ def to_s
344
+ to_hash.to_s
345
+ end
346
+
347
+ # to_body is an alias to to_hash (backward compatibility)
348
+ # @return [Hash] Returns the object in the form of hash
349
+ def to_body
350
+ to_hash
351
+ end
352
+
353
+ # Returns the object in the form of hash
354
+ # @return [Hash] Returns the object in the form of hash
355
+ def to_hash
356
+ hash = {}
357
+ self.class.attribute_map.each_pair do |attr, param|
358
+ value = self.send(attr)
359
+ if value.nil?
360
+ is_nullable = self.class.openapi_nullable.include?(attr)
361
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
362
+ end
363
+
364
+ hash[param] = _to_hash(value)
365
+ end
366
+ hash
367
+ end
368
+
369
+ # Outputs non-array value in the form of hash
370
+ # For object, use to_hash. Otherwise, just return the value
371
+ # @param [Object] value Any valid value
372
+ # @return [Hash] Returns the value in the form of hash
373
+ def _to_hash(value)
374
+ if value.is_a?(Array)
375
+ value.compact.map { |v| _to_hash(v) }
376
+ elsif value.is_a?(Hash)
377
+ {}.tap do |hash|
378
+ value.each { |k, v| hash[k] = _to_hash(v) }
379
+ end
380
+ elsif value.respond_to? :to_hash
381
+ value.to_hash
382
+ else
383
+ value
384
+ end
385
+ end
386
+
387
+ end
388
+
389
+ end
@@ -0,0 +1,285 @@
1
+ =begin
2
+ #CLOUD API
3
+
4
+ #IONOS Enterprise-grade Infrastructure as a Service (IaaS) solutions can be managed through the Cloud API, in addition or as an alternative to the \"Data Center Designer\" (DCD) browser-based tool. Both methods employ consistent concepts and features, deliver similar power and flexibility, and can be used to perform a multitude of management tasks, including adding servers, volumes, configuring networks, and so on.
5
+
6
+ The version of the OpenAPI document: 6.0
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.2.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module Ionoscloud
17
+ class ApplicationLoadBalancerForwardingRulePut
18
+
19
+ # The resource's unique identifier.
20
+ attr_accessor :id
21
+
22
+
23
+ # The type of object that has been created.
24
+ attr_accessor :type
25
+
26
+
27
+ # URL to the object representation (absolute path).
28
+ attr_accessor :href
29
+
30
+
31
+ attr_accessor :properties
32
+
33
+ # Attribute mapping from ruby-style variable name to JSON key.
34
+ def self.attribute_map
35
+ {
36
+
37
+ :'id' => :'id',
38
+
39
+ :'type' => :'type',
40
+
41
+ :'href' => :'href',
42
+
43
+ :'properties' => :'properties'
44
+ }
45
+ end
46
+
47
+ # Returns all the JSON keys this model knows about
48
+ def self.acceptable_attributes
49
+ attribute_map.values
50
+ end
51
+
52
+ # Attribute type mapping.
53
+ def self.openapi_types
54
+ {
55
+
56
+ :'id' => :'String',
57
+
58
+ :'type' => :'Type',
59
+
60
+ :'href' => :'String',
61
+
62
+ :'properties' => :'ApplicationLoadBalancerForwardingRuleProperties'
63
+ }
64
+ end
65
+
66
+ # List of attributes with nullable: true
67
+ def self.openapi_nullable
68
+ Set.new([
69
+
70
+
71
+
72
+
73
+ ])
74
+ end
75
+
76
+ # Initializes the object
77
+ # @param [Hash] attributes Model attributes in the form of hash
78
+ def initialize(attributes = {})
79
+ if (!attributes.is_a?(Hash))
80
+ fail ArgumentError, "The input argument (attributes) must be a hash in `Ionoscloud::ApplicationLoadBalancerForwardingRulePut` initialize method"
81
+ end
82
+
83
+ # check to see if the attribute exists and convert string to symbol for hash key
84
+ attributes = attributes.each_with_object({}) { |(k, v), h|
85
+ if (!self.class.attribute_map.key?(k.to_sym))
86
+ fail ArgumentError, "`#{k}` is not a valid attribute in `Ionoscloud::ApplicationLoadBalancerForwardingRulePut`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
87
+ end
88
+ h[k.to_sym] = v
89
+ }
90
+
91
+
92
+ if attributes.key?(:'id')
93
+ self.id = attributes[:'id']
94
+ end
95
+
96
+
97
+ if attributes.key?(:'type')
98
+ self.type = attributes[:'type']
99
+ end
100
+
101
+
102
+ if attributes.key?(:'href')
103
+ self.href = attributes[:'href']
104
+ end
105
+
106
+
107
+ if attributes.key?(:'properties')
108
+ self.properties = attributes[:'properties']
109
+ end
110
+ end
111
+
112
+ # Show invalid properties with the reasons. Usually used together with valid?
113
+ # @return Array for valid properties with the reasons
114
+ def list_invalid_properties
115
+ invalid_properties = Array.new
116
+
117
+
118
+
119
+
120
+ if @properties.nil?
121
+ invalid_properties.push('invalid value for "properties", properties cannot be nil.')
122
+ end
123
+
124
+ invalid_properties
125
+ end
126
+
127
+ # Check to see if the all the properties in the model are valid
128
+ # @return true if the model is valid
129
+ def valid?
130
+
131
+
132
+
133
+
134
+ return false if @properties.nil?
135
+ true
136
+ end
137
+
138
+
139
+
140
+
141
+
142
+ # Checks equality by comparing each attribute.
143
+ # @param [Object] Object to be compared
144
+ def ==(o)
145
+ return true if self.equal?(o)
146
+ self.class == o.class &&
147
+ id == o.id &&
148
+ type == o.type &&
149
+ href == o.href &&
150
+ properties == o.properties
151
+ end
152
+
153
+ # @see the `==` method
154
+ # @param [Object] Object to be compared
155
+ def eql?(o)
156
+ self == o
157
+ end
158
+
159
+ # Calculates hash code according to all attributes.
160
+ # @return [Integer] Hash code
161
+ def hash
162
+ [id, type, href, properties].hash
163
+ end
164
+
165
+ # Builds the object from hash
166
+ # @param [Hash] attributes Model attributes in the form of hash
167
+ # @return [Object] Returns the model itself
168
+ def self.build_from_hash(attributes)
169
+ new.build_from_hash(attributes)
170
+ end
171
+
172
+ # Builds the object from hash
173
+ # @param [Hash] attributes Model attributes in the form of hash
174
+ # @return [Object] Returns the model itself
175
+ def build_from_hash(attributes)
176
+ return nil unless attributes.is_a?(Hash)
177
+ self.class.openapi_types.each_pair do |key, type|
178
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
179
+ self.send("#{key}=", nil)
180
+ elsif type =~ /\AArray<(.*)>/i
181
+ # check to ensure the input is an array given that the attribute
182
+ # is documented as an array but the input is not
183
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
184
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
185
+ end
186
+ elsif !attributes[self.class.attribute_map[key]].nil?
187
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
188
+ end
189
+ end
190
+
191
+ self
192
+ end
193
+
194
+ # Deserializes the data based on type
195
+ # @param string type Data type
196
+ # @param string value Value to be deserialized
197
+ # @return [Object] Deserialized data
198
+ def _deserialize(type, value)
199
+ case type.to_sym
200
+ when :Time
201
+ Time.parse(value)
202
+ when :Date
203
+ Date.parse(value)
204
+ when :String
205
+ value.to_s
206
+ when :Integer
207
+ value.to_i
208
+ when :Float
209
+ value.to_f
210
+ when :Boolean
211
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
212
+ true
213
+ else
214
+ false
215
+ end
216
+ when :Object
217
+ # generic object (usually a Hash), return directly
218
+ value
219
+ when /\AArray<(?<inner_type>.+)>\z/
220
+ inner_type = Regexp.last_match[:inner_type]
221
+ value.map { |v| _deserialize(inner_type, v) }
222
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
223
+ k_type = Regexp.last_match[:k_type]
224
+ v_type = Regexp.last_match[:v_type]
225
+ {}.tap do |hash|
226
+ value.each do |k, v|
227
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
228
+ end
229
+ end
230
+ else # model
231
+ # models (e.g. Pet) or oneOf
232
+ klass = Ionoscloud.const_get(type)
233
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
234
+ end
235
+ end
236
+
237
+ # Returns the string representation of the object
238
+ # @return [String] String presentation of the object
239
+ def to_s
240
+ to_hash.to_s
241
+ end
242
+
243
+ # to_body is an alias to to_hash (backward compatibility)
244
+ # @return [Hash] Returns the object in the form of hash
245
+ def to_body
246
+ to_hash
247
+ end
248
+
249
+ # Returns the object in the form of hash
250
+ # @return [Hash] Returns the object in the form of hash
251
+ def to_hash
252
+ hash = {}
253
+ self.class.attribute_map.each_pair do |attr, param|
254
+ value = self.send(attr)
255
+ if value.nil?
256
+ is_nullable = self.class.openapi_nullable.include?(attr)
257
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
258
+ end
259
+
260
+ hash[param] = _to_hash(value)
261
+ end
262
+ hash
263
+ end
264
+
265
+ # Outputs non-array value in the form of hash
266
+ # For object, use to_hash. Otherwise, just return the value
267
+ # @param [Object] value Any valid value
268
+ # @return [Hash] Returns the value in the form of hash
269
+ def _to_hash(value)
270
+ if value.is_a?(Array)
271
+ value.compact.map { |v| _to_hash(v) }
272
+ elsif value.is_a?(Hash)
273
+ {}.tap do |hash|
274
+ value.each { |k, v| hash[k] = _to_hash(v) }
275
+ end
276
+ elsif value.respond_to? :to_hash
277
+ value.to_hash
278
+ else
279
+ value
280
+ end
281
+ end
282
+
283
+ end
284
+
285
+ end