ionoscloud 5.1.1 → 6.0.0.beta.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (536) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -19
  3. data/docs/CHANGELOG.md +1 -0
  4. data/docs/README.md +4 -4
  5. data/docs/api/BackupUnitsApi.md +594 -0
  6. data/docs/api/ContractResourcesApi.md +89 -0
  7. data/docs/api/DataCentersApi.md +516 -0
  8. data/docs/api/DefaultApi.md +8 -19
  9. data/docs/api/FirewallRulesApi.md +552 -0
  10. data/docs/api/FlowLogsApi.md +540 -0
  11. data/docs/api/IPBlocksApi.md +50 -51
  12. data/docs/api/ImagesApi.md +428 -0
  13. data/docs/api/KubernetesApi.md +131 -211
  14. data/docs/api/LabelsApi.md +2338 -0
  15. data/docs/api/LansApi.md +794 -0
  16. data/docs/api/LoadBalancersApi.md +877 -0
  17. data/docs/api/LocationsApi.md +259 -0
  18. data/docs/api/NATGatewaysApi.md +1574 -0
  19. data/docs/api/NetworkInterfacesApi.md +540 -0
  20. data/docs/api/NetworkLoadBalancersApi.md +1586 -0
  21. data/docs/api/PrivateCrossConnectsApi.md +426 -0
  22. data/docs/api/{RequestApi.md → RequestsApi.md} +36 -36
  23. data/docs/api/ServersApi.md +1908 -0
  24. data/docs/api/SnapshotsApi.md +428 -0
  25. data/docs/api/TemplatesApi.md +165 -0
  26. data/docs/api/UserManagementApi.md +173 -687
  27. data/docs/api/UserS3KeysApi.md +516 -0
  28. data/docs/api/VolumesApi.md +709 -0
  29. data/docs/models/AttachedVolumes.md +1 -1
  30. data/docs/models/Cdroms.md +1 -1
  31. data/docs/models/Contracts.md +24 -0
  32. data/docs/models/CpuArchitectureProperties.md +24 -0
  33. data/docs/models/DataCenterEntities.md +5 -1
  34. data/docs/models/DatacenterProperties.md +3 -1
  35. data/docs/models/FirewallruleProperties.md +3 -1
  36. data/docs/models/FlowLog.md +26 -0
  37. data/docs/models/FlowLogProperties.md +24 -0
  38. data/docs/models/FlowLogPut.md +24 -0
  39. data/docs/models/FlowLogs.md +30 -0
  40. data/docs/models/Group.md +1 -1
  41. data/docs/models/GroupMembers.md +1 -1
  42. data/docs/models/GroupProperties.md +7 -1
  43. data/docs/models/GroupShare.md +1 -1
  44. data/docs/models/GroupShares.md +1 -1
  45. data/docs/models/GroupUsers.md +1 -1
  46. data/docs/models/Groups.md +1 -1
  47. data/docs/models/KubernetesAutoScaling.md +2 -2
  48. data/docs/models/KubernetesClusterProperties.md +1 -1
  49. data/docs/models/KubernetesClusterPropertiesForPost.md +1 -1
  50. data/docs/models/KubernetesClusterPropertiesForPut.md +1 -1
  51. data/docs/models/KubernetesClusters.md +1 -1
  52. data/docs/models/KubernetesMaintenanceWindow.md +2 -2
  53. data/docs/models/KubernetesNodePoolLan.md +5 -1
  54. data/docs/models/KubernetesNodePoolLanRoutes.md +20 -0
  55. data/docs/models/KubernetesNodePools.md +1 -1
  56. data/docs/models/Lans.md +1 -1
  57. data/docs/models/LocationProperties.md +3 -1
  58. data/docs/models/NatGateway.md +28 -0
  59. data/docs/models/NatGatewayEntities.md +20 -0
  60. data/docs/models/NatGatewayLanProperties.md +20 -0
  61. data/docs/models/NatGatewayProperties.md +22 -0
  62. data/docs/models/NatGatewayPut.md +24 -0
  63. data/docs/models/NatGatewayRule.md +26 -0
  64. data/docs/models/NatGatewayRuleProperties.md +30 -0
  65. data/docs/models/NatGatewayRuleProtocol.md +15 -0
  66. data/docs/models/NatGatewayRulePut.md +24 -0
  67. data/docs/models/NatGatewayRuleType.md +15 -0
  68. data/docs/models/NatGatewayRules.md +24 -0
  69. data/docs/models/NatGateways.md +30 -0
  70. data/docs/models/NetworkLoadBalancer.md +28 -0
  71. data/docs/models/NetworkLoadBalancerEntities.md +20 -0
  72. data/docs/models/NetworkLoadBalancerForwardingRule.md +26 -0
  73. data/docs/models/NetworkLoadBalancerForwardingRuleHealthCheck.md +24 -0
  74. data/docs/models/NetworkLoadBalancerForwardingRuleProperties.md +30 -0
  75. data/docs/models/NetworkLoadBalancerForwardingRulePut.md +24 -0
  76. data/docs/models/NetworkLoadBalancerForwardingRuleTarget.md +24 -0
  77. data/docs/models/NetworkLoadBalancerForwardingRuleTargetHealthCheck.md +22 -0
  78. data/docs/models/NetworkLoadBalancerForwardingRules.md +30 -0
  79. data/docs/models/NetworkLoadBalancerProperties.md +26 -0
  80. data/docs/models/NetworkLoadBalancerPut.md +24 -0
  81. data/docs/models/NetworkLoadBalancers.md +30 -0
  82. data/docs/models/NicEntities.md +2 -0
  83. data/docs/models/NicProperties.md +6 -2
  84. data/docs/models/NicPut.md +24 -0
  85. data/docs/models/Nics.md +1 -1
  86. data/docs/models/PrivateCrossConnectProperties.md +1 -1
  87. data/docs/models/RemoteConsoleUrl.md +18 -0
  88. data/docs/models/Resource.md +1 -1
  89. data/docs/models/ResourceGroups.md +1 -1
  90. data/docs/models/ResourceLimits.md +11 -1
  91. data/docs/models/ResourceProperties.md +1 -1
  92. data/docs/models/Resources.md +1 -1
  93. data/docs/models/ResourcesUsers.md +1 -1
  94. data/docs/models/S3Bucket.md +1 -1
  95. data/docs/models/S3Key.md +1 -1
  96. data/docs/models/S3Keys.md +1 -1
  97. data/docs/models/ServerProperties.md +6 -2
  98. data/docs/models/TargetPortRange.md +20 -0
  99. data/docs/models/Template.md +26 -0
  100. data/docs/models/TemplateProperties.md +24 -0
  101. data/docs/models/Templates.md +24 -0
  102. data/docs/models/Token.md +18 -0
  103. data/docs/models/VolumeProperties.md +5 -3
  104. data/docs/summary.md +386 -159
  105. data/ionoscloud.gemspec +3 -3
  106. data/lib/ionoscloud/api/_api.rb +9 -9
  107. data/lib/ionoscloud/api/{backup_unit_api.rb → backup_units_api.rb} +101 -101
  108. data/lib/ionoscloud/api/contract_resources_api.rb +96 -0
  109. data/lib/ionoscloud/api/data_centers_api.rb +532 -0
  110. data/lib/ionoscloud/api/firewall_rules_api.rb +640 -0
  111. data/lib/ionoscloud/api/flow_logs_api.rb +622 -0
  112. data/lib/ionoscloud/api/{image_api.rb → images_api.rb} +71 -71
  113. data/lib/ionoscloud/api/ip_blocks_api.rb +55 -55
  114. data/lib/ionoscloud/api/kubernetes_api.rb +131 -194
  115. data/lib/ionoscloud/api/{label_api.rb → labels_api.rb} +416 -470
  116. data/lib/ionoscloud/api/{lan_api.rb → lans_api.rb} +178 -178
  117. data/lib/ionoscloud/api/{load_balancer_api.rb → load_balancers_api.rb} +198 -216
  118. data/lib/ionoscloud/api/{location_api.rb → locations_api.rb} +49 -49
  119. data/lib/ionoscloud/api/nat_gateways_api.rb +1672 -0
  120. data/lib/ionoscloud/api/network_interfaces_api.rb +604 -0
  121. data/lib/ionoscloud/api/network_load_balancers_api.rb +1690 -0
  122. data/lib/ionoscloud/api/{private_cross_connect_api.rb → private_cross_connects_api.rb} +76 -76
  123. data/lib/ionoscloud/api/{request_api.rb → requests_api.rb} +45 -45
  124. data/lib/ionoscloud/api/servers_api.rb +2023 -0
  125. data/lib/ionoscloud/api/{snapshot_api.rb → snapshots_api.rb} +77 -77
  126. data/lib/ionoscloud/api/templates_api.rb +164 -0
  127. data/lib/ionoscloud/api/user_management_api.rb +172 -667
  128. data/lib/ionoscloud/api/user_s3_keys_api.rb +517 -0
  129. data/lib/ionoscloud/api/{volume_api.rb → volumes_api.rb} +145 -145
  130. data/lib/ionoscloud/api_client.rb +5 -5
  131. data/lib/ionoscloud/api_error.rb +2 -2
  132. data/lib/ionoscloud/configuration.rb +4 -4
  133. data/lib/ionoscloud/models/attached_volumes.rb +2 -2
  134. data/lib/ionoscloud/models/backup_unit.rb +2 -2
  135. data/lib/ionoscloud/models/backup_unit_properties.rb +2 -2
  136. data/lib/ionoscloud/models/backup_unit_sso.rb +2 -2
  137. data/lib/ionoscloud/models/backup_units.rb +2 -2
  138. data/lib/ionoscloud/models/balanced_nics.rb +2 -2
  139. data/lib/ionoscloud/models/cdroms.rb +2 -2
  140. data/lib/ionoscloud/models/connectable_datacenter.rb +2 -2
  141. data/lib/ionoscloud/models/contract.rb +2 -2
  142. data/lib/ionoscloud/models/contract_properties.rb +2 -2
  143. data/lib/ionoscloud/models/contracts.rb +251 -0
  144. data/lib/ionoscloud/models/cpu_architecture_properties.rb +249 -0
  145. data/lib/ionoscloud/models/data_center_entities.rb +24 -6
  146. data/lib/ionoscloud/models/datacenter.rb +2 -2
  147. data/lib/ionoscloud/models/datacenter_element_metadata.rb +4 -4
  148. data/lib/ionoscloud/models/datacenter_properties.rb +18 -6
  149. data/lib/ionoscloud/models/datacenters.rb +2 -2
  150. data/lib/ionoscloud/models/error.rb +2 -2
  151. data/lib/ionoscloud/models/error_message.rb +2 -2
  152. data/lib/ionoscloud/models/firewall_rule.rb +2 -2
  153. data/lib/ionoscloud/models/firewall_rules.rb +2 -2
  154. data/lib/ionoscloud/models/firewallrule_properties.rb +28 -6
  155. data/lib/ionoscloud/models/flow_log.rb +262 -0
  156. data/lib/ionoscloud/models/flow_log_properties.rb +315 -0
  157. data/lib/ionoscloud/models/{kubernetes_config.rb → flow_log_put.rb} +9 -43
  158. data/lib/ionoscloud/models/flow_logs.rb +280 -0
  159. data/lib/ionoscloud/models/group.rb +2 -2
  160. data/lib/ionoscloud/models/group_entities.rb +2 -2
  161. data/lib/ionoscloud/models/group_members.rb +2 -2
  162. data/lib/ionoscloud/models/group_properties.rb +36 -6
  163. data/lib/ionoscloud/models/group_share.rb +2 -2
  164. data/lib/ionoscloud/models/group_share_properties.rb +2 -2
  165. data/lib/ionoscloud/models/group_shares.rb +2 -2
  166. data/lib/ionoscloud/models/group_users.rb +2 -2
  167. data/lib/ionoscloud/models/groups.rb +2 -2
  168. data/lib/ionoscloud/models/image.rb +2 -2
  169. data/lib/ionoscloud/models/image_properties.rb +2 -2
  170. data/lib/ionoscloud/models/images.rb +2 -2
  171. data/lib/ionoscloud/models/info.rb +2 -2
  172. data/lib/ionoscloud/models/ip_block.rb +2 -2
  173. data/lib/ionoscloud/models/ip_block_properties.rb +2 -2
  174. data/lib/ionoscloud/models/ip_blocks.rb +2 -2
  175. data/lib/ionoscloud/models/ip_consumer.rb +2 -2
  176. data/lib/ionoscloud/models/ip_failover.rb +2 -2
  177. data/lib/ionoscloud/models/kubernetes_auto_scaling.rb +12 -2
  178. data/lib/ionoscloud/models/kubernetes_cluster.rb +2 -2
  179. data/lib/ionoscloud/models/kubernetes_cluster_entities.rb +2 -2
  180. data/lib/ionoscloud/models/kubernetes_cluster_for_post.rb +2 -2
  181. data/lib/ionoscloud/models/kubernetes_cluster_for_put.rb +2 -2
  182. data/lib/ionoscloud/models/kubernetes_cluster_properties.rb +3 -3
  183. data/lib/ionoscloud/models/kubernetes_cluster_properties_for_post.rb +3 -3
  184. data/lib/ionoscloud/models/kubernetes_cluster_properties_for_put.rb +3 -3
  185. data/lib/ionoscloud/models/kubernetes_clusters.rb +3 -3
  186. data/lib/ionoscloud/models/kubernetes_maintenance_window.rb +12 -2
  187. data/lib/ionoscloud/models/kubernetes_node.rb +2 -2
  188. data/lib/ionoscloud/models/kubernetes_node_metadata.rb +4 -4
  189. data/lib/ionoscloud/models/kubernetes_node_pool.rb +2 -2
  190. data/lib/ionoscloud/models/kubernetes_node_pool_for_post.rb +2 -2
  191. data/lib/ionoscloud/models/kubernetes_node_pool_for_put.rb +2 -2
  192. data/lib/ionoscloud/models/kubernetes_node_pool_lan.rb +28 -6
  193. data/lib/ionoscloud/models/kubernetes_node_pool_lan_routes.rb +229 -0
  194. data/lib/ionoscloud/models/kubernetes_node_pool_properties.rb +2 -2
  195. data/lib/ionoscloud/models/kubernetes_node_pool_properties_for_post.rb +2 -2
  196. data/lib/ionoscloud/models/kubernetes_node_pool_properties_for_put.rb +2 -2
  197. data/lib/ionoscloud/models/kubernetes_node_pools.rb +3 -3
  198. data/lib/ionoscloud/models/kubernetes_node_properties.rb +2 -2
  199. data/lib/ionoscloud/models/kubernetes_nodes.rb +2 -2
  200. data/lib/ionoscloud/models/label.rb +2 -2
  201. data/lib/ionoscloud/models/label_properties.rb +2 -2
  202. data/lib/ionoscloud/models/label_resource.rb +2 -2
  203. data/lib/ionoscloud/models/label_resource_properties.rb +2 -2
  204. data/lib/ionoscloud/models/label_resources.rb +2 -2
  205. data/lib/ionoscloud/models/labels.rb +2 -2
  206. data/lib/ionoscloud/models/lan.rb +2 -2
  207. data/lib/ionoscloud/models/lan_entities.rb +2 -2
  208. data/lib/ionoscloud/models/lan_nics.rb +2 -2
  209. data/lib/ionoscloud/models/lan_post.rb +2 -2
  210. data/lib/ionoscloud/models/lan_properties.rb +2 -2
  211. data/lib/ionoscloud/models/lan_properties_post.rb +2 -2
  212. data/lib/ionoscloud/models/lans.rb +3 -3
  213. data/lib/ionoscloud/models/loadbalancer.rb +2 -2
  214. data/lib/ionoscloud/models/loadbalancer_entities.rb +2 -2
  215. data/lib/ionoscloud/models/loadbalancer_properties.rb +2 -2
  216. data/lib/ionoscloud/models/loadbalancers.rb +2 -2
  217. data/lib/ionoscloud/models/location.rb +2 -2
  218. data/lib/ionoscloud/models/location_properties.rb +18 -6
  219. data/lib/ionoscloud/models/locations.rb +2 -2
  220. data/lib/ionoscloud/models/nat_gateway.rb +271 -0
  221. data/lib/ionoscloud/models/nat_gateway_entities.rb +227 -0
  222. data/lib/ionoscloud/models/nat_gateway_lan_properties.rb +236 -0
  223. data/lib/ionoscloud/models/nat_gateway_properties.rb +253 -0
  224. data/lib/ionoscloud/models/nat_gateway_put.rb +253 -0
  225. data/lib/ionoscloud/models/nat_gateway_rule.rb +262 -0
  226. data/lib/ionoscloud/models/nat_gateway_rule_properties.rb +293 -0
  227. data/lib/ionoscloud/models/nat_gateway_rule_protocol.rb +39 -0
  228. data/lib/ionoscloud/models/nat_gateway_rule_put.rb +253 -0
  229. data/lib/ionoscloud/models/nat_gateway_rule_type.rb +36 -0
  230. data/lib/ionoscloud/models/nat_gateway_rules.rb +251 -0
  231. data/lib/ionoscloud/models/nat_gateways.rb +280 -0
  232. data/lib/ionoscloud/models/network_load_balancer.rb +271 -0
  233. data/lib/ionoscloud/models/network_load_balancer_entities.rb +227 -0
  234. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule.rb +262 -0
  235. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_health_check.rb +249 -0
  236. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_properties.rb +356 -0
  237. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_put.rb +253 -0
  238. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_target.rb +263 -0
  239. data/lib/ionoscloud/models/network_load_balancer_forwarding_rule_target_health_check.rb +239 -0
  240. data/lib/ionoscloud/models/network_load_balancer_forwarding_rules.rb +280 -0
  241. data/lib/ionoscloud/models/network_load_balancer_properties.rb +278 -0
  242. data/lib/ionoscloud/models/network_load_balancer_put.rb +253 -0
  243. data/lib/ionoscloud/models/network_load_balancers.rb +280 -0
  244. data/lib/ionoscloud/models/nic.rb +2 -2
  245. data/lib/ionoscloud/models/nic_entities.rb +12 -3
  246. data/lib/ionoscloud/models/nic_properties.rb +64 -10
  247. data/lib/ionoscloud/models/nic_put.rb +253 -0
  248. data/lib/ionoscloud/models/nics.rb +2 -2
  249. data/lib/ionoscloud/models/no_state_meta_data.rb +2 -2
  250. data/lib/ionoscloud/models/pagination_links.rb +2 -2
  251. data/lib/ionoscloud/models/peer.rb +2 -2
  252. data/lib/ionoscloud/models/private_cross_connect.rb +2 -2
  253. data/lib/ionoscloud/models/private_cross_connect_properties.rb +3 -3
  254. data/lib/ionoscloud/models/private_cross_connects.rb +2 -2
  255. data/lib/ionoscloud/models/{kubernetes_config_properties.rb → remote_console_url.rb} +13 -13
  256. data/lib/ionoscloud/models/request.rb +2 -2
  257. data/lib/ionoscloud/models/request_metadata.rb +2 -2
  258. data/lib/ionoscloud/models/request_properties.rb +2 -2
  259. data/lib/ionoscloud/models/request_status.rb +2 -2
  260. data/lib/ionoscloud/models/request_status_metadata.rb +2 -2
  261. data/lib/ionoscloud/models/request_target.rb +2 -2
  262. data/lib/ionoscloud/models/requests.rb +2 -2
  263. data/lib/ionoscloud/models/resource.rb +2 -2
  264. data/lib/ionoscloud/models/resource_entities.rb +2 -2
  265. data/lib/ionoscloud/models/resource_groups.rb +2 -2
  266. data/lib/ionoscloud/models/resource_limits.rb +81 -6
  267. data/lib/ionoscloud/models/resource_properties.rb +3 -3
  268. data/lib/ionoscloud/models/resource_reference.rb +2 -2
  269. data/lib/ionoscloud/models/resources.rb +2 -2
  270. data/lib/ionoscloud/models/resources_users.rb +2 -2
  271. data/lib/ionoscloud/models/s3_bucket.rb +3 -3
  272. data/lib/ionoscloud/models/s3_key.rb +2 -2
  273. data/lib/ionoscloud/models/s3_key_metadata.rb +2 -2
  274. data/lib/ionoscloud/models/s3_key_properties.rb +2 -2
  275. data/lib/ionoscloud/models/s3_keys.rb +2 -2
  276. data/lib/ionoscloud/models/s3_object_storage_sso.rb +2 -2
  277. data/lib/ionoscloud/models/server.rb +2 -2
  278. data/lib/ionoscloud/models/server_entities.rb +2 -2
  279. data/lib/ionoscloud/models/server_properties.rb +27 -7
  280. data/lib/ionoscloud/models/servers.rb +2 -2
  281. data/lib/ionoscloud/models/snapshot.rb +2 -2
  282. data/lib/ionoscloud/models/snapshot_properties.rb +2 -2
  283. data/lib/ionoscloud/models/snapshots.rb +2 -2
  284. data/lib/ionoscloud/models/target_port_range.rb +229 -0
  285. data/lib/ionoscloud/models/template.rb +262 -0
  286. data/lib/ionoscloud/models/template_properties.rb +269 -0
  287. data/lib/ionoscloud/models/templates.rb +251 -0
  288. data/lib/ionoscloud/models/token.rb +219 -0
  289. data/lib/ionoscloud/models/type.rb +10 -2
  290. data/lib/ionoscloud/models/user.rb +2 -2
  291. data/lib/ionoscloud/models/user_metadata.rb +2 -2
  292. data/lib/ionoscloud/models/user_post.rb +2 -2
  293. data/lib/ionoscloud/models/user_properties.rb +2 -2
  294. data/lib/ionoscloud/models/user_properties_post.rb +2 -2
  295. data/lib/ionoscloud/models/user_properties_put.rb +2 -2
  296. data/lib/ionoscloud/models/user_put.rb +2 -2
  297. data/lib/ionoscloud/models/users.rb +2 -2
  298. data/lib/ionoscloud/models/users_entities.rb +2 -2
  299. data/lib/ionoscloud/models/volume.rb +2 -2
  300. data/lib/ionoscloud/models/volume_properties.rb +16 -6
  301. data/lib/ionoscloud/models/volumes.rb +2 -2
  302. data/lib/ionoscloud/version.rb +3 -3
  303. data/lib/ionoscloud.rb +60 -18
  304. data/spec/api/_api_spec.rb +5 -5
  305. data/spec/api/backup_units_api_spec.rb +140 -0
  306. data/spec/api/contract_resources_api_spec.rb +49 -0
  307. data/spec/api/data_centers_api_spec.rb +128 -0
  308. data/spec/api/firewall_rules_api_spec.rb +146 -0
  309. data/spec/api/flow_logs_api_spec.rb +140 -0
  310. data/spec/api/images_api_spec.rb +111 -0
  311. data/spec/api/ip_blocks_api_spec.rb +27 -27
  312. data/spec/api/kubernetes_api_spec.rb +55 -67
  313. data/spec/api/labels_api_spec.rb +474 -0
  314. data/spec/api/lans_api_spec.rb +186 -0
  315. data/spec/api/load_balancers_api_spec.rb +201 -0
  316. data/spec/api/locations_api_spec.rb +80 -0
  317. data/spec/api/nat_gateways_api_spec.rb +334 -0
  318. data/spec/api/network_interfaces_api_spec.rb +140 -0
  319. data/spec/api/network_load_balancers_api_spec.rb +340 -0
  320. data/spec/api/private_cross_connects_api_spec.rb +110 -0
  321. data/spec/api/{request_api_spec.rb → requests_api_spec.rb} +19 -19
  322. data/spec/api/servers_api_spec.rb +401 -0
  323. data/spec/api/snapshots_api_spec.rb +111 -0
  324. data/spec/api/templates_api_spec.rb +60 -0
  325. data/spec/api/user_management_api_spec.rb +81 -174
  326. data/spec/api/user_s3_keys_api_spec.rb +128 -0
  327. data/spec/api/volumes_api_spec.rb +171 -0
  328. data/spec/api_client_spec.rb +2 -2
  329. data/spec/configuration_spec.rb +5 -5
  330. data/spec/models/attached_volumes_spec.rb +2 -2
  331. data/spec/models/backup_unit_properties_spec.rb +2 -2
  332. data/spec/models/backup_unit_spec.rb +2 -2
  333. data/spec/models/backup_unit_sso_spec.rb +2 -2
  334. data/spec/models/backup_units_spec.rb +2 -2
  335. data/spec/models/balanced_nics_spec.rb +2 -2
  336. data/spec/models/cdroms_spec.rb +2 -2
  337. data/spec/models/connectable_datacenter_spec.rb +2 -2
  338. data/spec/models/contract_properties_spec.rb +2 -2
  339. data/spec/models/contract_spec.rb +2 -2
  340. data/spec/models/contracts_spec.rb +52 -0
  341. data/spec/models/cpu_architecture_properties_spec.rb +52 -0
  342. data/spec/models/data_center_entities_spec.rb +14 -2
  343. data/spec/models/datacenter_element_metadata_spec.rb +3 -3
  344. data/spec/models/datacenter_properties_spec.rb +8 -2
  345. data/spec/models/datacenter_spec.rb +2 -2
  346. data/spec/models/datacenters_spec.rb +2 -2
  347. data/spec/models/error_message_spec.rb +2 -2
  348. data/spec/models/error_spec.rb +2 -2
  349. data/spec/models/firewall_rule_spec.rb +2 -2
  350. data/spec/models/firewall_rules_spec.rb +2 -2
  351. data/spec/models/firewallrule_properties_spec.rb +12 -2
  352. data/spec/models/flow_log_properties_spec.rb +60 -0
  353. data/spec/models/flow_log_put_spec.rb +52 -0
  354. data/spec/models/flow_log_spec.rb +58 -0
  355. data/spec/models/flow_logs_spec.rb +70 -0
  356. data/spec/models/group_entities_spec.rb +2 -2
  357. data/spec/models/group_members_spec.rb +2 -2
  358. data/spec/models/group_properties_spec.rb +20 -2
  359. data/spec/models/group_share_properties_spec.rb +2 -2
  360. data/spec/models/group_share_spec.rb +2 -2
  361. data/spec/models/group_shares_spec.rb +2 -2
  362. data/spec/models/group_spec.rb +2 -2
  363. data/spec/models/group_users_spec.rb +2 -2
  364. data/spec/models/groups_spec.rb +2 -2
  365. data/spec/models/image_properties_spec.rb +2 -2
  366. data/spec/models/image_spec.rb +2 -2
  367. data/spec/models/images_spec.rb +2 -2
  368. data/spec/models/info_spec.rb +2 -2
  369. data/spec/models/ip_block_properties_spec.rb +2 -2
  370. data/spec/models/ip_block_spec.rb +2 -2
  371. data/spec/models/ip_blocks_spec.rb +2 -2
  372. data/spec/models/ip_consumer_spec.rb +2 -2
  373. data/spec/models/ip_failover_spec.rb +2 -2
  374. data/spec/models/kubernetes_auto_scaling_spec.rb +2 -2
  375. data/spec/models/kubernetes_cluster_entities_spec.rb +2 -2
  376. data/spec/models/kubernetes_cluster_for_post_spec.rb +2 -2
  377. data/spec/models/kubernetes_cluster_for_put_spec.rb +2 -2
  378. data/spec/models/kubernetes_cluster_properties_for_post_spec.rb +2 -2
  379. data/spec/models/kubernetes_cluster_properties_for_put_spec.rb +2 -2
  380. data/spec/models/kubernetes_cluster_properties_spec.rb +2 -2
  381. data/spec/models/kubernetes_cluster_spec.rb +2 -2
  382. data/spec/models/kubernetes_clusters_spec.rb +2 -2
  383. data/spec/models/kubernetes_maintenance_window_spec.rb +2 -2
  384. data/spec/models/kubernetes_node_metadata_spec.rb +3 -3
  385. data/spec/models/kubernetes_node_pool_for_post_spec.rb +2 -2
  386. data/spec/models/kubernetes_node_pool_for_put_spec.rb +2 -2
  387. data/spec/models/kubernetes_node_pool_lan_routes_spec.rb +40 -0
  388. data/spec/models/kubernetes_node_pool_lan_spec.rb +14 -2
  389. data/spec/models/kubernetes_node_pool_properties_for_post_spec.rb +2 -2
  390. data/spec/models/kubernetes_node_pool_properties_for_put_spec.rb +2 -2
  391. data/spec/models/kubernetes_node_pool_properties_spec.rb +2 -2
  392. data/spec/models/kubernetes_node_pool_spec.rb +2 -2
  393. data/spec/models/kubernetes_node_pools_spec.rb +2 -2
  394. data/spec/models/kubernetes_node_properties_spec.rb +2 -2
  395. data/spec/models/kubernetes_node_spec.rb +2 -2
  396. data/spec/models/kubernetes_nodes_spec.rb +2 -2
  397. data/spec/models/label_properties_spec.rb +2 -2
  398. data/spec/models/label_resource_properties_spec.rb +2 -2
  399. data/spec/models/label_resource_spec.rb +2 -2
  400. data/spec/models/label_resources_spec.rb +2 -2
  401. data/spec/models/label_spec.rb +2 -2
  402. data/spec/models/labels_spec.rb +2 -2
  403. data/spec/models/lan_entities_spec.rb +2 -2
  404. data/spec/models/lan_nics_spec.rb +2 -2
  405. data/spec/models/lan_post_spec.rb +2 -2
  406. data/spec/models/lan_properties_post_spec.rb +2 -2
  407. data/spec/models/lan_properties_spec.rb +2 -2
  408. data/spec/models/lan_spec.rb +2 -2
  409. data/spec/models/lans_spec.rb +2 -2
  410. data/spec/models/loadbalancer_entities_spec.rb +2 -2
  411. data/spec/models/loadbalancer_properties_spec.rb +2 -2
  412. data/spec/models/loadbalancer_spec.rb +2 -2
  413. data/spec/models/loadbalancers_spec.rb +2 -2
  414. data/spec/models/location_properties_spec.rb +8 -2
  415. data/spec/models/location_spec.rb +2 -2
  416. data/spec/models/locations_spec.rb +2 -2
  417. data/spec/models/nat_gateway_entities_spec.rb +40 -0
  418. data/spec/models/nat_gateway_lan_properties_spec.rb +40 -0
  419. data/spec/models/nat_gateway_properties_spec.rb +46 -0
  420. data/spec/models/nat_gateway_put_spec.rb +52 -0
  421. data/spec/models/nat_gateway_rule_properties_spec.rb +70 -0
  422. data/spec/models/nat_gateway_rule_protocol_spec.rb +28 -0
  423. data/spec/models/nat_gateway_rule_put_spec.rb +52 -0
  424. data/spec/models/nat_gateway_rule_spec.rb +58 -0
  425. data/spec/models/nat_gateway_rule_type_spec.rb +28 -0
  426. data/spec/models/nat_gateway_rules_spec.rb +52 -0
  427. data/spec/models/nat_gateway_spec.rb +64 -0
  428. data/spec/models/nat_gateways_spec.rb +70 -0
  429. data/spec/models/network_load_balancer_entities_spec.rb +40 -0
  430. data/spec/models/network_load_balancer_forwarding_rule_health_check_spec.rb +52 -0
  431. data/spec/models/network_load_balancer_forwarding_rule_properties_spec.rb +78 -0
  432. data/spec/models/network_load_balancer_forwarding_rule_put_spec.rb +52 -0
  433. data/spec/models/network_load_balancer_forwarding_rule_spec.rb +58 -0
  434. data/spec/models/network_load_balancer_forwarding_rule_target_health_check_spec.rb +46 -0
  435. data/spec/models/network_load_balancer_forwarding_rule_target_spec.rb +52 -0
  436. data/spec/models/network_load_balancer_forwarding_rules_spec.rb +70 -0
  437. data/spec/models/network_load_balancer_properties_spec.rb +58 -0
  438. data/spec/models/network_load_balancer_put_spec.rb +52 -0
  439. data/spec/models/network_load_balancer_spec.rb +64 -0
  440. data/spec/models/network_load_balancers_spec.rb +70 -0
  441. data/spec/models/nic_entities_spec.rb +8 -2
  442. data/spec/models/nic_properties_spec.rb +19 -3
  443. data/spec/models/nic_put_spec.rb +52 -0
  444. data/spec/models/nic_spec.rb +2 -2
  445. data/spec/models/nics_spec.rb +2 -2
  446. data/spec/models/no_state_meta_data_spec.rb +2 -2
  447. data/spec/models/pagination_links_spec.rb +2 -2
  448. data/spec/models/peer_spec.rb +2 -2
  449. data/spec/models/private_cross_connect_properties_spec.rb +2 -2
  450. data/spec/models/private_cross_connect_spec.rb +2 -2
  451. data/spec/models/private_cross_connects_spec.rb +2 -2
  452. data/spec/models/remote_console_url_spec.rb +34 -0
  453. data/spec/models/request_metadata_spec.rb +2 -2
  454. data/spec/models/request_properties_spec.rb +2 -2
  455. data/spec/models/request_spec.rb +2 -2
  456. data/spec/models/request_status_metadata_spec.rb +2 -2
  457. data/spec/models/request_status_spec.rb +2 -2
  458. data/spec/models/request_target_spec.rb +2 -2
  459. data/spec/models/requests_spec.rb +2 -2
  460. data/spec/models/resource_entities_spec.rb +2 -2
  461. data/spec/models/resource_groups_spec.rb +2 -2
  462. data/spec/models/resource_limits_spec.rb +32 -2
  463. data/spec/models/resource_properties_spec.rb +2 -2
  464. data/spec/models/resource_reference_spec.rb +2 -2
  465. data/spec/models/resource_spec.rb +2 -2
  466. data/spec/models/resources_spec.rb +2 -2
  467. data/spec/models/resources_users_spec.rb +2 -2
  468. data/spec/models/s3_bucket_spec.rb +2 -2
  469. data/spec/models/s3_key_metadata_spec.rb +2 -2
  470. data/spec/models/s3_key_properties_spec.rb +2 -2
  471. data/spec/models/s3_key_spec.rb +2 -2
  472. data/spec/models/s3_keys_spec.rb +2 -2
  473. data/spec/models/s3_object_storage_sso_spec.rb +2 -2
  474. data/spec/models/server_entities_spec.rb +2 -2
  475. data/spec/models/server_properties_spec.rb +14 -2
  476. data/spec/models/server_spec.rb +2 -2
  477. data/spec/models/servers_spec.rb +2 -2
  478. data/spec/models/snapshot_properties_spec.rb +2 -2
  479. data/spec/models/snapshot_spec.rb +2 -2
  480. data/spec/models/snapshots_spec.rb +2 -2
  481. data/spec/models/target_port_range_spec.rb +40 -0
  482. data/spec/models/template_properties_spec.rb +52 -0
  483. data/spec/models/template_spec.rb +58 -0
  484. data/spec/models/templates_spec.rb +52 -0
  485. data/spec/models/token_spec.rb +34 -0
  486. data/spec/models/type_spec.rb +2 -2
  487. data/spec/models/user_metadata_spec.rb +2 -2
  488. data/spec/models/user_post_spec.rb +2 -2
  489. data/spec/models/user_properties_post_spec.rb +2 -2
  490. data/spec/models/user_properties_put_spec.rb +2 -2
  491. data/spec/models/user_properties_spec.rb +2 -2
  492. data/spec/models/user_put_spec.rb +2 -2
  493. data/spec/models/user_spec.rb +2 -2
  494. data/spec/models/users_entities_spec.rb +2 -2
  495. data/spec/models/users_spec.rb +2 -2
  496. data/spec/models/volume_properties_spec.rb +8 -2
  497. data/spec/models/volume_spec.rb +2 -2
  498. data/spec/models/volumes_spec.rb +2 -2
  499. data/spec/spec_helper.rb +2 -2
  500. metadata +246 -80
  501. data/Gemfile.lock +0 -68
  502. data/docs/api/BackupUnitApi.md +0 -595
  503. data/docs/api/ContractApi.md +0 -89
  504. data/docs/api/DataCenterApi.md +0 -517
  505. data/docs/api/ImageApi.md +0 -429
  506. data/docs/api/LabelApi.md +0 -2355
  507. data/docs/api/LanApi.md +0 -795
  508. data/docs/api/LoadBalancerApi.md +0 -883
  509. data/docs/api/LocationApi.md +0 -259
  510. data/docs/api/NicApi.md +0 -1087
  511. data/docs/api/PrivateCrossConnectApi.md +0 -427
  512. data/docs/api/ServerApi.md +0 -1573
  513. data/docs/api/SnapshotApi.md +0 -429
  514. data/docs/api/VolumeApi.md +0 -711
  515. data/docs/models/KubernetesConfig.md +0 -24
  516. data/docs/models/KubernetesConfigProperties.md +0 -18
  517. data/lib/ionoscloud/api/contract_api.rb +0 -96
  518. data/lib/ionoscloud/api/data_center_api.rb +0 -532
  519. data/lib/ionoscloud/api/nic_api.rb +0 -1222
  520. data/lib/ionoscloud/api/server_api.rb +0 -1679
  521. data/lib/test_driver.rb +0 -104
  522. data/spec/api/backup_unit_api_spec.rb +0 -140
  523. data/spec/api/contract_api_spec.rb +0 -49
  524. data/spec/api/data_center_api_spec.rb +0 -128
  525. data/spec/api/image_api_spec.rb +0 -111
  526. data/spec/api/label_api_spec.rb +0 -480
  527. data/spec/api/lan_api_spec.rb +0 -186
  528. data/spec/api/load_balancer_api_spec.rb +0 -203
  529. data/spec/api/location_api_spec.rb +0 -80
  530. data/spec/api/nic_api_spec.rb +0 -251
  531. data/spec/api/private_cross_connect_api_spec.rb +0 -110
  532. data/spec/api/server_api_spec.rb +0 -337
  533. data/spec/api/snapshot_api_spec.rb +0 -111
  534. data/spec/api/volume_api_spec.rb +0 -171
  535. data/spec/models/kubernetes_config_properties_spec.rb +0 -34
  536. data/spec/models/kubernetes_config_spec.rb +0 -56
@@ -0,0 +1,1672 @@
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-SDK.3
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.2.1-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module Ionoscloud
16
+ class NATGatewaysApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Remove a NAT gateway
23
+ # Removes the specified NAT gateway.
24
+ # @param datacenter_id [String] The unique ID of the data center.
25
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
26
+ # @param [Hash] opts the optional parameters
27
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
28
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth=0: Only direct properties are included; children (servers and other elements) are not included. - depth=1: Direct properties and children references are included. - depth=2: Direct properties and children properties are included. - depth=3: Direct properties and children properties and children's children are included. - depth=... and so on (default to 0)
29
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
30
+ # @return [nil]
31
+ def datacenters_natgateways_delete(datacenter_id, nat_gateway_id, opts = {})
32
+ datacenters_natgateways_delete_with_http_info(datacenter_id, nat_gateway_id, opts)
33
+ nil
34
+ end
35
+
36
+ # Remove a NAT gateway
37
+ # Removes the specified NAT gateway.
38
+ # @param datacenter_id [String] The unique ID of the data center.
39
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
40
+ # @param [Hash] opts the optional parameters
41
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
42
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth=0: Only direct properties are included; children (servers and other elements) are not included. - depth=1: Direct properties and children references are included. - depth=2: Direct properties and children properties are included. - depth=3: Direct properties and children properties and children's children are included. - depth=... and so on
43
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
44
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
45
+ def datacenters_natgateways_delete_with_http_info(datacenter_id, nat_gateway_id, opts = {})
46
+ if @api_client.config.debugging
47
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_delete ...'
48
+ end
49
+ # verify the required parameter 'datacenter_id' is set
50
+ if @api_client.config.client_side_validation && datacenter_id.nil?
51
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_delete"
52
+ end
53
+ # verify the required parameter 'nat_gateway_id' is set
54
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
55
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_delete"
56
+ end
57
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
58
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_delete, must be smaller than or equal to 10.'
59
+ end
60
+
61
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
62
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_delete, must be greater than or equal to 0.'
63
+ end
64
+
65
+ # resource path
66
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
67
+
68
+ # query parameters
69
+ query_params = opts[:query_params] || {}
70
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
71
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
72
+
73
+ # header parameters
74
+ header_params = opts[:header_params] || {}
75
+ # HTTP header 'Accept' (if needed)
76
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
77
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
78
+
79
+ # form parameters
80
+ form_params = opts[:form_params] || {}
81
+
82
+ # http body (model)
83
+ post_body = opts[:debug_body]
84
+
85
+ # return_type
86
+ return_type = opts[:debug_return_type]
87
+
88
+ # auth_names
89
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
90
+
91
+ new_options = opts.merge(
92
+ :operation => :"NATGatewaysApi.datacenters_natgateways_delete",
93
+ :header_params => header_params,
94
+ :query_params => query_params,
95
+ :form_params => form_params,
96
+ :body => post_body,
97
+ :auth_names => auth_names,
98
+ :return_type => return_type
99
+ )
100
+
101
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
102
+ if @api_client.config.debugging
103
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
104
+ end
105
+ return data, status_code, headers
106
+ end
107
+
108
+ # Retrieve a NAT gateway
109
+ # Retrieves the attributes of a given NAT gateway.
110
+ # @param datacenter_id [String] The unique ID of the data center.
111
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
112
+ # @param [Hash] opts the optional parameters
113
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
114
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
115
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
116
+ # @return [NatGateway]
117
+ def datacenters_natgateways_find_by_nat_gateway_id(datacenter_id, nat_gateway_id, opts = {})
118
+ data, _status_code, _headers = datacenters_natgateways_find_by_nat_gateway_id_with_http_info(datacenter_id, nat_gateway_id, opts)
119
+ data
120
+ end
121
+
122
+ # Retrieve a NAT gateway
123
+ # Retrieves the attributes of a given NAT gateway.
124
+ # @param datacenter_id [String] The unique ID of the data center.
125
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
126
+ # @param [Hash] opts the optional parameters
127
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
128
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
129
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
130
+ # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers
131
+ def datacenters_natgateways_find_by_nat_gateway_id_with_http_info(datacenter_id, nat_gateway_id, opts = {})
132
+ if @api_client.config.debugging
133
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id ...'
134
+ end
135
+ # verify the required parameter 'datacenter_id' is set
136
+ if @api_client.config.client_side_validation && datacenter_id.nil?
137
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id"
138
+ end
139
+ # verify the required parameter 'nat_gateway_id' is set
140
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
141
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id"
142
+ end
143
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
144
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id, must be smaller than or equal to 10.'
145
+ end
146
+
147
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
148
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id, must be greater than or equal to 0.'
149
+ end
150
+
151
+ # resource path
152
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
153
+
154
+ # query parameters
155
+ query_params = opts[:query_params] || {}
156
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
157
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
158
+
159
+ # header parameters
160
+ header_params = opts[:header_params] || {}
161
+ # HTTP header 'Accept' (if needed)
162
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
163
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
164
+
165
+ # form parameters
166
+ form_params = opts[:form_params] || {}
167
+
168
+ # http body (model)
169
+ post_body = opts[:debug_body]
170
+
171
+ # return_type
172
+ return_type = opts[:debug_return_type] || 'NatGateway'
173
+
174
+ # auth_names
175
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
176
+
177
+ new_options = opts.merge(
178
+ :operation => :"NATGatewaysApi.datacenters_natgateways_find_by_nat_gateway_id",
179
+ :header_params => header_params,
180
+ :query_params => query_params,
181
+ :form_params => form_params,
182
+ :body => post_body,
183
+ :auth_names => auth_names,
184
+ :return_type => return_type
185
+ )
186
+
187
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
188
+ if @api_client.config.debugging
189
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_find_by_nat_gateway_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
190
+ end
191
+ return data, status_code, headers
192
+ end
193
+
194
+ # Remove Flow Log from NAT Gateway
195
+ # This will remove a flow log from the NAT gateway.
196
+ # @param datacenter_id [String] The unique ID of the data center.
197
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
198
+ # @param flow_log_id [String] The unique ID of the flow log
199
+ # @param [Hash] opts the optional parameters
200
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
201
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
202
+ # @return [nil]
203
+ def datacenters_natgateways_flowlogs_delete(datacenter_id, nat_gateway_id, flow_log_id, opts = {})
204
+ datacenters_natgateways_flowlogs_delete_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts)
205
+ nil
206
+ end
207
+
208
+ # Remove Flow Log from NAT Gateway
209
+ # This will remove a flow log from the NAT gateway.
210
+ # @param datacenter_id [String] The unique ID of the data center.
211
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
212
+ # @param flow_log_id [String] The unique ID of the flow log
213
+ # @param [Hash] opts the optional parameters
214
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
215
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
216
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
217
+ def datacenters_natgateways_flowlogs_delete_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts = {})
218
+ if @api_client.config.debugging
219
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_delete ...'
220
+ end
221
+ # verify the required parameter 'datacenter_id' is set
222
+ if @api_client.config.client_side_validation && datacenter_id.nil?
223
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete"
224
+ end
225
+ # verify the required parameter 'nat_gateway_id' is set
226
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
227
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete"
228
+ end
229
+ # verify the required parameter 'flow_log_id' is set
230
+ if @api_client.config.client_side_validation && flow_log_id.nil?
231
+ fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete"
232
+ end
233
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
234
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete, must be smaller than or equal to 10.'
235
+ end
236
+
237
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
238
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_delete, must be greater than or equal to 0.'
239
+ end
240
+
241
+ # resource path
242
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s))
243
+
244
+ # query parameters
245
+ query_params = opts[:query_params] || {}
246
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
247
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
248
+
249
+ # header parameters
250
+ header_params = opts[:header_params] || {}
251
+ # HTTP header 'Accept' (if needed)
252
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
253
+
254
+ # form parameters
255
+ form_params = opts[:form_params] || {}
256
+
257
+ # http body (model)
258
+ post_body = opts[:debug_body]
259
+
260
+ # return_type
261
+ return_type = opts[:debug_return_type]
262
+
263
+ # auth_names
264
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
265
+
266
+ new_options = opts.merge(
267
+ :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_delete",
268
+ :header_params => header_params,
269
+ :query_params => query_params,
270
+ :form_params => form_params,
271
+ :body => post_body,
272
+ :auth_names => auth_names,
273
+ :return_type => return_type
274
+ )
275
+
276
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
277
+ if @api_client.config.debugging
278
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
279
+ end
280
+ return data, status_code, headers
281
+ end
282
+
283
+ # Retrieve a Flow Log of the NAT Gateway
284
+ # This will return a Flow Log of the NAT Gateway.
285
+ # @param datacenter_id [String] The unique ID of the data center.
286
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
287
+ # @param flow_log_id [String] The unique ID of the flow log
288
+ # @param [Hash] opts the optional parameters
289
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
290
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
291
+ # @return [FlowLog]
292
+ def datacenters_natgateways_flowlogs_find_by_flow_log_id(datacenter_id, nat_gateway_id, flow_log_id, opts = {})
293
+ data, _status_code, _headers = datacenters_natgateways_flowlogs_find_by_flow_log_id_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts)
294
+ data
295
+ end
296
+
297
+ # Retrieve a Flow Log of the NAT Gateway
298
+ # This will return a Flow Log of the NAT Gateway.
299
+ # @param datacenter_id [String] The unique ID of the data center.
300
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
301
+ # @param flow_log_id [String] The unique ID of the flow log
302
+ # @param [Hash] opts the optional parameters
303
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
304
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
305
+ # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers
306
+ def datacenters_natgateways_flowlogs_find_by_flow_log_id_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, opts = {})
307
+ if @api_client.config.debugging
308
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id ...'
309
+ end
310
+ # verify the required parameter 'datacenter_id' is set
311
+ if @api_client.config.client_side_validation && datacenter_id.nil?
312
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id"
313
+ end
314
+ # verify the required parameter 'nat_gateway_id' is set
315
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
316
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id"
317
+ end
318
+ # verify the required parameter 'flow_log_id' is set
319
+ if @api_client.config.client_side_validation && flow_log_id.nil?
320
+ fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id"
321
+ end
322
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
323
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id, must be smaller than or equal to 10.'
324
+ end
325
+
326
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
327
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id, must be greater than or equal to 0.'
328
+ end
329
+
330
+ # resource path
331
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s))
332
+
333
+ # query parameters
334
+ query_params = opts[:query_params] || {}
335
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
336
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
337
+
338
+ # header parameters
339
+ header_params = opts[:header_params] || {}
340
+ # HTTP header 'Accept' (if needed)
341
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
342
+
343
+ # form parameters
344
+ form_params = opts[:form_params] || {}
345
+
346
+ # http body (model)
347
+ post_body = opts[:debug_body]
348
+
349
+ # return_type
350
+ return_type = opts[:debug_return_type] || 'FlowLog'
351
+
352
+ # auth_names
353
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
354
+
355
+ new_options = opts.merge(
356
+ :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_find_by_flow_log_id",
357
+ :header_params => header_params,
358
+ :query_params => query_params,
359
+ :form_params => form_params,
360
+ :body => post_body,
361
+ :auth_names => auth_names,
362
+ :return_type => return_type
363
+ )
364
+
365
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
366
+ if @api_client.config.debugging
367
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_find_by_flow_log_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
368
+ end
369
+ return data, status_code, headers
370
+ end
371
+
372
+ # List NAT Gateway Flow Logs
373
+ # You can retrieve a list of Flow Logs of the NAT Gateway.
374
+ # @param datacenter_id [String] The unique ID of the data center.
375
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
376
+ # @param [Hash] opts the optional parameters
377
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
378
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
379
+ # @option opts [Integer] :offset The first element (from the complete list of the elements) to include in the response (use together with limit for pagination). (default to 0)
380
+ # @option opts [Integer] :limit The maximum number of elements to return (use together with offset for pagination). (default to 1000)
381
+ # @return [FlowLogs]
382
+ def datacenters_natgateways_flowlogs_get(datacenter_id, nat_gateway_id, opts = {})
383
+ data, _status_code, _headers = datacenters_natgateways_flowlogs_get_with_http_info(datacenter_id, nat_gateway_id, opts)
384
+ data
385
+ end
386
+
387
+ # List NAT Gateway Flow Logs
388
+ # You can retrieve a list of Flow Logs of the NAT Gateway.
389
+ # @param datacenter_id [String] The unique ID of the data center.
390
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
391
+ # @param [Hash] opts the optional parameters
392
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
393
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
394
+ # @option opts [Integer] :offset The first element (from the complete list of the elements) to include in the response (use together with limit for pagination).
395
+ # @option opts [Integer] :limit The maximum number of elements to return (use together with offset for pagination).
396
+ # @return [Array<(FlowLogs, Integer, Hash)>] FlowLogs data, response status code and response headers
397
+ def datacenters_natgateways_flowlogs_get_with_http_info(datacenter_id, nat_gateway_id, opts = {})
398
+ if @api_client.config.debugging
399
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_get ...'
400
+ end
401
+ # verify the required parameter 'datacenter_id' is set
402
+ if @api_client.config.client_side_validation && datacenter_id.nil?
403
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get"
404
+ end
405
+ # verify the required parameter 'nat_gateway_id' is set
406
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
407
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get"
408
+ end
409
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
410
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be smaller than or equal to 10.'
411
+ end
412
+
413
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
414
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be greater than or equal to 0.'
415
+ end
416
+
417
+ if @api_client.config.client_side_validation && !opts[:'offset'].nil? && opts[:'offset'] < 0
418
+ fail ArgumentError, 'invalid value for "opts[:"offset"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be greater than or equal to 0.'
419
+ end
420
+
421
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] > 10000
422
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be smaller than or equal to 10000.'
423
+ end
424
+
425
+ if @api_client.config.client_side_validation && !opts[:'limit'].nil? && opts[:'limit'] < 1
426
+ fail ArgumentError, 'invalid value for "opts[:"limit"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_get, must be greater than or equal to 1.'
427
+ end
428
+
429
+ # resource path
430
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
431
+
432
+ # query parameters
433
+ query_params = opts[:query_params] || {}
434
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
435
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
436
+ query_params[:'offset'] = opts[:'offset'] if !opts[:'offset'].nil?
437
+ query_params[:'limit'] = opts[:'limit'] if !opts[:'limit'].nil?
438
+
439
+ # header parameters
440
+ header_params = opts[:header_params] || {}
441
+ # HTTP header 'Accept' (if needed)
442
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
443
+
444
+ # form parameters
445
+ form_params = opts[:form_params] || {}
446
+
447
+ # http body (model)
448
+ post_body = opts[:debug_body]
449
+
450
+ # return_type
451
+ return_type = opts[:debug_return_type] || 'FlowLogs'
452
+
453
+ # auth_names
454
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
455
+
456
+ new_options = opts.merge(
457
+ :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_get",
458
+ :header_params => header_params,
459
+ :query_params => query_params,
460
+ :form_params => form_params,
461
+ :body => post_body,
462
+ :auth_names => auth_names,
463
+ :return_type => return_type
464
+ )
465
+
466
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
467
+ if @api_client.config.debugging
468
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
469
+ end
470
+ return data, status_code, headers
471
+ end
472
+
473
+ # Partially modify a Flow Log of the NAT Gateway
474
+ # You can use to partially update a Flow Log of a NAT Gateway.
475
+ # @param datacenter_id [String] The unique ID of the data center.
476
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
477
+ # @param flow_log_id [String] The unique ID of the flow log
478
+ # @param nat_gateway_flow_log_properties [FlowLogProperties] Properties of a Flow Log to be updated
479
+ # @param [Hash] opts the optional parameters
480
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
481
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
482
+ # @return [FlowLog]
483
+ def datacenters_natgateways_flowlogs_patch(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log_properties, opts = {})
484
+ data, _status_code, _headers = datacenters_natgateways_flowlogs_patch_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log_properties, opts)
485
+ data
486
+ end
487
+
488
+ # Partially modify a Flow Log of the NAT Gateway
489
+ # You can use to partially update a Flow Log of a NAT Gateway.
490
+ # @param datacenter_id [String] The unique ID of the data center.
491
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
492
+ # @param flow_log_id [String] The unique ID of the flow log
493
+ # @param nat_gateway_flow_log_properties [FlowLogProperties] Properties of a Flow Log to be updated
494
+ # @param [Hash] opts the optional parameters
495
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
496
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
497
+ # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers
498
+ def datacenters_natgateways_flowlogs_patch_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log_properties, opts = {})
499
+ if @api_client.config.debugging
500
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_patch ...'
501
+ end
502
+ # verify the required parameter 'datacenter_id' is set
503
+ if @api_client.config.client_side_validation && datacenter_id.nil?
504
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch"
505
+ end
506
+ # verify the required parameter 'nat_gateway_id' is set
507
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
508
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch"
509
+ end
510
+ # verify the required parameter 'flow_log_id' is set
511
+ if @api_client.config.client_side_validation && flow_log_id.nil?
512
+ fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch"
513
+ end
514
+ # verify the required parameter 'nat_gateway_flow_log_properties' is set
515
+ if @api_client.config.client_side_validation && nat_gateway_flow_log_properties.nil?
516
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_flow_log_properties' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch"
517
+ end
518
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
519
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch, must be smaller than or equal to 10.'
520
+ end
521
+
522
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
523
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_patch, must be greater than or equal to 0.'
524
+ end
525
+
526
+ # resource path
527
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s))
528
+
529
+ # query parameters
530
+ query_params = opts[:query_params] || {}
531
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
532
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
533
+
534
+ # header parameters
535
+ header_params = opts[:header_params] || {}
536
+ # HTTP header 'Accept' (if needed)
537
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
538
+
539
+ # form parameters
540
+ form_params = opts[:form_params] || {}
541
+
542
+ # http body (model)
543
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_flow_log_properties)
544
+
545
+ # return_type
546
+ return_type = opts[:debug_return_type] || 'FlowLog'
547
+
548
+ # auth_names
549
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
550
+
551
+ new_options = opts.merge(
552
+ :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_patch",
553
+ :header_params => header_params,
554
+ :query_params => query_params,
555
+ :form_params => form_params,
556
+ :body => post_body,
557
+ :auth_names => auth_names,
558
+ :return_type => return_type
559
+ )
560
+
561
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
562
+ if @api_client.config.debugging
563
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
564
+ end
565
+ return data, status_code, headers
566
+ end
567
+
568
+ # Add a NAT Gateways Flow Log
569
+ # This will add a new Flow Log to the NAT Gateway.
570
+ # @param datacenter_id [String] The unique ID of the data center.
571
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
572
+ # @param nat_gateway_flow_log [FlowLog] Flow Log to add on NAT Gateway
573
+ # @param [Hash] opts the optional parameters
574
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
575
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
576
+ # @return [FlowLog]
577
+ def datacenters_natgateways_flowlogs_post(datacenter_id, nat_gateway_id, nat_gateway_flow_log, opts = {})
578
+ data, _status_code, _headers = datacenters_natgateways_flowlogs_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_flow_log, opts)
579
+ data
580
+ end
581
+
582
+ # Add a NAT Gateways Flow Log
583
+ # This will add a new Flow Log to the NAT Gateway.
584
+ # @param datacenter_id [String] The unique ID of the data center.
585
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
586
+ # @param nat_gateway_flow_log [FlowLog] Flow Log to add on NAT Gateway
587
+ # @param [Hash] opts the optional parameters
588
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
589
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
590
+ # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers
591
+ def datacenters_natgateways_flowlogs_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_flow_log, opts = {})
592
+ if @api_client.config.debugging
593
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_post ...'
594
+ end
595
+ # verify the required parameter 'datacenter_id' is set
596
+ if @api_client.config.client_side_validation && datacenter_id.nil?
597
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post"
598
+ end
599
+ # verify the required parameter 'nat_gateway_id' is set
600
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
601
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post"
602
+ end
603
+ # verify the required parameter 'nat_gateway_flow_log' is set
604
+ if @api_client.config.client_side_validation && nat_gateway_flow_log.nil?
605
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_flow_log' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post"
606
+ end
607
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
608
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post, must be smaller than or equal to 10.'
609
+ end
610
+
611
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
612
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_post, must be greater than or equal to 0.'
613
+ end
614
+
615
+ # resource path
616
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
617
+
618
+ # query parameters
619
+ query_params = opts[:query_params] || {}
620
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
621
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
622
+
623
+ # header parameters
624
+ header_params = opts[:header_params] || {}
625
+ # HTTP header 'Accept' (if needed)
626
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
627
+ # HTTP header 'Content-Type'
628
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
629
+
630
+ # form parameters
631
+ form_params = opts[:form_params] || {}
632
+
633
+ # http body (model)
634
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_flow_log)
635
+
636
+ # return_type
637
+ return_type = opts[:debug_return_type] || 'FlowLog'
638
+
639
+ # auth_names
640
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
641
+
642
+ new_options = opts.merge(
643
+ :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_post",
644
+ :header_params => header_params,
645
+ :query_params => query_params,
646
+ :form_params => form_params,
647
+ :body => post_body,
648
+ :auth_names => auth_names,
649
+ :return_type => return_type
650
+ )
651
+
652
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
653
+ if @api_client.config.debugging
654
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
655
+ end
656
+ return data, status_code, headers
657
+ end
658
+
659
+ # Modify a Flow Log of the NAT Gateway
660
+ # You can use to update a Flow Log of the NAT Gateway.
661
+ # @param datacenter_id [String] The unique ID of the data center.
662
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
663
+ # @param flow_log_id [String] The unique ID of the flow log
664
+ # @param nat_gateway_flow_log [FlowLogPut] Modified NAT Gateway Flow Log
665
+ # @param [Hash] opts the optional parameters
666
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
667
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
668
+ # @return [FlowLog]
669
+ def datacenters_natgateways_flowlogs_put(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log, opts = {})
670
+ data, _status_code, _headers = datacenters_natgateways_flowlogs_put_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log, opts)
671
+ data
672
+ end
673
+
674
+ # Modify a Flow Log of the NAT Gateway
675
+ # You can use to update a Flow Log of the NAT Gateway.
676
+ # @param datacenter_id [String] The unique ID of the data center.
677
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
678
+ # @param flow_log_id [String] The unique ID of the flow log
679
+ # @param nat_gateway_flow_log [FlowLogPut] Modified NAT Gateway Flow Log
680
+ # @param [Hash] opts the optional parameters
681
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
682
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
683
+ # @return [Array<(FlowLog, Integer, Hash)>] FlowLog data, response status code and response headers
684
+ def datacenters_natgateways_flowlogs_put_with_http_info(datacenter_id, nat_gateway_id, flow_log_id, nat_gateway_flow_log, opts = {})
685
+ if @api_client.config.debugging
686
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_flowlogs_put ...'
687
+ end
688
+ # verify the required parameter 'datacenter_id' is set
689
+ if @api_client.config.client_side_validation && datacenter_id.nil?
690
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put"
691
+ end
692
+ # verify the required parameter 'nat_gateway_id' is set
693
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
694
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put"
695
+ end
696
+ # verify the required parameter 'flow_log_id' is set
697
+ if @api_client.config.client_side_validation && flow_log_id.nil?
698
+ fail ArgumentError, "Missing the required parameter 'flow_log_id' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put"
699
+ end
700
+ # verify the required parameter 'nat_gateway_flow_log' is set
701
+ if @api_client.config.client_side_validation && nat_gateway_flow_log.nil?
702
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_flow_log' when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put"
703
+ end
704
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
705
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put, must be smaller than or equal to 10.'
706
+ end
707
+
708
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
709
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_flowlogs_put, must be greater than or equal to 0.'
710
+ end
711
+
712
+ # resource path
713
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/flowlogs/{flowLogId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'flowLogId' + '}', CGI.escape(flow_log_id.to_s))
714
+
715
+ # query parameters
716
+ query_params = opts[:query_params] || {}
717
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
718
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
719
+
720
+ # header parameters
721
+ header_params = opts[:header_params] || {}
722
+ # HTTP header 'Accept' (if needed)
723
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
724
+ # HTTP header 'Content-Type'
725
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
726
+
727
+ # form parameters
728
+ form_params = opts[:form_params] || {}
729
+
730
+ # http body (model)
731
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_flow_log)
732
+
733
+ # return_type
734
+ return_type = opts[:debug_return_type] || 'FlowLog'
735
+
736
+ # auth_names
737
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
738
+
739
+ new_options = opts.merge(
740
+ :operation => :"NATGatewaysApi.datacenters_natgateways_flowlogs_put",
741
+ :header_params => header_params,
742
+ :query_params => query_params,
743
+ :form_params => form_params,
744
+ :body => post_body,
745
+ :auth_names => auth_names,
746
+ :return_type => return_type
747
+ )
748
+
749
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
750
+ if @api_client.config.debugging
751
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_flowlogs_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
752
+ end
753
+ return data, status_code, headers
754
+ end
755
+
756
+ # List NAT Gateways
757
+ # Retrieve a list of NAT Gateways within the datacenter.
758
+ # @param datacenter_id [String] The unique ID of the data center.
759
+ # @param [Hash] opts the optional parameters
760
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
761
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
762
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
763
+ # @return [NatGateways]
764
+ def datacenters_natgateways_get(datacenter_id, opts = {})
765
+ data, _status_code, _headers = datacenters_natgateways_get_with_http_info(datacenter_id, opts)
766
+ data
767
+ end
768
+
769
+ # List NAT Gateways
770
+ # Retrieve a list of NAT Gateways within the datacenter.
771
+ # @param datacenter_id [String] The unique ID of the data center.
772
+ # @param [Hash] opts the optional parameters
773
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
774
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
775
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
776
+ # @return [Array<(NatGateways, Integer, Hash)>] NatGateways data, response status code and response headers
777
+ def datacenters_natgateways_get_with_http_info(datacenter_id, opts = {})
778
+ if @api_client.config.debugging
779
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_get ...'
780
+ end
781
+ # verify the required parameter 'datacenter_id' is set
782
+ if @api_client.config.client_side_validation && datacenter_id.nil?
783
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_get"
784
+ end
785
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
786
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_get, must be smaller than or equal to 10.'
787
+ end
788
+
789
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
790
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_get, must be greater than or equal to 0.'
791
+ end
792
+
793
+ # resource path
794
+ local_var_path = '/datacenters/{datacenterId}/natgateways'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s))
795
+
796
+ # query parameters
797
+ query_params = opts[:query_params] || {}
798
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
799
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
800
+
801
+ # header parameters
802
+ header_params = opts[:header_params] || {}
803
+ # HTTP header 'Accept' (if needed)
804
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
805
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
806
+
807
+ # form parameters
808
+ form_params = opts[:form_params] || {}
809
+
810
+ # http body (model)
811
+ post_body = opts[:debug_body]
812
+
813
+ # return_type
814
+ return_type = opts[:debug_return_type] || 'NatGateways'
815
+
816
+ # auth_names
817
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
818
+
819
+ new_options = opts.merge(
820
+ :operation => :"NATGatewaysApi.datacenters_natgateways_get",
821
+ :header_params => header_params,
822
+ :query_params => query_params,
823
+ :form_params => form_params,
824
+ :body => post_body,
825
+ :auth_names => auth_names,
826
+ :return_type => return_type
827
+ )
828
+
829
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
830
+ if @api_client.config.debugging
831
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
832
+ end
833
+ return data, status_code, headers
834
+ end
835
+
836
+ # Partially update a NAT gateway
837
+ # Partially update the attributes of a given NAT gateway
838
+ # @param datacenter_id [String] The unique ID of the data center.
839
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
840
+ # @param nat_gateway_properties [NatGatewayProperties] NAT gateway properties to be updated
841
+ # @param [Hash] opts the optional parameters
842
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
843
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
844
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
845
+ # @return [NatGateway]
846
+ def datacenters_natgateways_patch(datacenter_id, nat_gateway_id, nat_gateway_properties, opts = {})
847
+ data, _status_code, _headers = datacenters_natgateways_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_properties, opts)
848
+ data
849
+ end
850
+
851
+ # Partially update a NAT gateway
852
+ # Partially update the attributes of a given NAT gateway
853
+ # @param datacenter_id [String] The unique ID of the data center.
854
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
855
+ # @param nat_gateway_properties [NatGatewayProperties] NAT gateway properties to be updated
856
+ # @param [Hash] opts the optional parameters
857
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
858
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
859
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
860
+ # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers
861
+ def datacenters_natgateways_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_properties, opts = {})
862
+ if @api_client.config.debugging
863
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_patch ...'
864
+ end
865
+ # verify the required parameter 'datacenter_id' is set
866
+ if @api_client.config.client_side_validation && datacenter_id.nil?
867
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_patch"
868
+ end
869
+ # verify the required parameter 'nat_gateway_id' is set
870
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
871
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_patch"
872
+ end
873
+ # verify the required parameter 'nat_gateway_properties' is set
874
+ if @api_client.config.client_side_validation && nat_gateway_properties.nil?
875
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_properties' when calling NATGatewaysApi.datacenters_natgateways_patch"
876
+ end
877
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
878
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_patch, must be smaller than or equal to 10.'
879
+ end
880
+
881
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
882
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_patch, must be greater than or equal to 0.'
883
+ end
884
+
885
+ # resource path
886
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
887
+
888
+ # query parameters
889
+ query_params = opts[:query_params] || {}
890
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
891
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
892
+
893
+ # header parameters
894
+ header_params = opts[:header_params] || {}
895
+ # HTTP header 'Accept' (if needed)
896
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
897
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
898
+
899
+ # form parameters
900
+ form_params = opts[:form_params] || {}
901
+
902
+ # http body (model)
903
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_properties)
904
+
905
+ # return_type
906
+ return_type = opts[:debug_return_type] || 'NatGateway'
907
+
908
+ # auth_names
909
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
910
+
911
+ new_options = opts.merge(
912
+ :operation => :"NATGatewaysApi.datacenters_natgateways_patch",
913
+ :header_params => header_params,
914
+ :query_params => query_params,
915
+ :form_params => form_params,
916
+ :body => post_body,
917
+ :auth_names => auth_names,
918
+ :return_type => return_type
919
+ )
920
+
921
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
922
+ if @api_client.config.debugging
923
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
924
+ end
925
+ return data, status_code, headers
926
+ end
927
+
928
+ # Create a NAT Gateway
929
+ # Creates a NAT Gateway within the datacenter. User should be the contract owner or a admin or a user with createInternetAccess privilege
930
+ # @param datacenter_id [String] The unique ID of the data center.
931
+ # @param nat_gateway [NatGateway] NAT gateway to be created
932
+ # @param [Hash] opts the optional parameters
933
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
934
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
935
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
936
+ # @return [NatGateway]
937
+ def datacenters_natgateways_post(datacenter_id, nat_gateway, opts = {})
938
+ data, _status_code, _headers = datacenters_natgateways_post_with_http_info(datacenter_id, nat_gateway, opts)
939
+ data
940
+ end
941
+
942
+ # Create a NAT Gateway
943
+ # Creates a NAT Gateway within the datacenter. User should be the contract owner or a admin or a user with createInternetAccess privilege
944
+ # @param datacenter_id [String] The unique ID of the data center.
945
+ # @param nat_gateway [NatGateway] NAT gateway to be created
946
+ # @param [Hash] opts the optional parameters
947
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
948
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
949
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
950
+ # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers
951
+ def datacenters_natgateways_post_with_http_info(datacenter_id, nat_gateway, opts = {})
952
+ if @api_client.config.debugging
953
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_post ...'
954
+ end
955
+ # verify the required parameter 'datacenter_id' is set
956
+ if @api_client.config.client_side_validation && datacenter_id.nil?
957
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_post"
958
+ end
959
+ # verify the required parameter 'nat_gateway' is set
960
+ if @api_client.config.client_side_validation && nat_gateway.nil?
961
+ fail ArgumentError, "Missing the required parameter 'nat_gateway' when calling NATGatewaysApi.datacenters_natgateways_post"
962
+ end
963
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
964
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_post, must be smaller than or equal to 10.'
965
+ end
966
+
967
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
968
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_post, must be greater than or equal to 0.'
969
+ end
970
+
971
+ # resource path
972
+ local_var_path = '/datacenters/{datacenterId}/natgateways'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s))
973
+
974
+ # query parameters
975
+ query_params = opts[:query_params] || {}
976
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
977
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
978
+
979
+ # header parameters
980
+ header_params = opts[:header_params] || {}
981
+ # HTTP header 'Accept' (if needed)
982
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
983
+ # HTTP header 'Content-Type'
984
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
985
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
986
+
987
+ # form parameters
988
+ form_params = opts[:form_params] || {}
989
+
990
+ # http body (model)
991
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway)
992
+
993
+ # return_type
994
+ return_type = opts[:debug_return_type] || 'NatGateway'
995
+
996
+ # auth_names
997
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
998
+
999
+ new_options = opts.merge(
1000
+ :operation => :"NATGatewaysApi.datacenters_natgateways_post",
1001
+ :header_params => header_params,
1002
+ :query_params => query_params,
1003
+ :form_params => form_params,
1004
+ :body => post_body,
1005
+ :auth_names => auth_names,
1006
+ :return_type => return_type
1007
+ )
1008
+
1009
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1010
+ if @api_client.config.debugging
1011
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1012
+ end
1013
+ return data, status_code, headers
1014
+ end
1015
+
1016
+ # Update a NAT gateway
1017
+ # Update the attributes of a given NAT gateway
1018
+ # @param datacenter_id [String] The unique ID of the data center.
1019
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1020
+ # @param nat_gateway [NatGatewayPut] Modified NAT Gateway
1021
+ # @param [Hash] opts the optional parameters
1022
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1023
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1024
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1025
+ # @return [NatGateway]
1026
+ def datacenters_natgateways_put(datacenter_id, nat_gateway_id, nat_gateway, opts = {})
1027
+ data, _status_code, _headers = datacenters_natgateways_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway, opts)
1028
+ data
1029
+ end
1030
+
1031
+ # Update a NAT gateway
1032
+ # Update the attributes of a given NAT gateway
1033
+ # @param datacenter_id [String] The unique ID of the data center.
1034
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1035
+ # @param nat_gateway [NatGatewayPut] Modified NAT Gateway
1036
+ # @param [Hash] opts the optional parameters
1037
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1038
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1039
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1040
+ # @return [Array<(NatGateway, Integer, Hash)>] NatGateway data, response status code and response headers
1041
+ def datacenters_natgateways_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway, opts = {})
1042
+ if @api_client.config.debugging
1043
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_put ...'
1044
+ end
1045
+ # verify the required parameter 'datacenter_id' is set
1046
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1047
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_put"
1048
+ end
1049
+ # verify the required parameter 'nat_gateway_id' is set
1050
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1051
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_put"
1052
+ end
1053
+ # verify the required parameter 'nat_gateway' is set
1054
+ if @api_client.config.client_side_validation && nat_gateway.nil?
1055
+ fail ArgumentError, "Missing the required parameter 'nat_gateway' when calling NATGatewaysApi.datacenters_natgateways_put"
1056
+ end
1057
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1058
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be smaller than or equal to 10.'
1059
+ end
1060
+
1061
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1062
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_put, must be greater than or equal to 0.'
1063
+ end
1064
+
1065
+ # resource path
1066
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
1067
+
1068
+ # query parameters
1069
+ query_params = opts[:query_params] || {}
1070
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1071
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1072
+
1073
+ # header parameters
1074
+ header_params = opts[:header_params] || {}
1075
+ # HTTP header 'Accept' (if needed)
1076
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1077
+ # HTTP header 'Content-Type'
1078
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1079
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1080
+
1081
+ # form parameters
1082
+ form_params = opts[:form_params] || {}
1083
+
1084
+ # http body (model)
1085
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway)
1086
+
1087
+ # return_type
1088
+ return_type = opts[:debug_return_type] || 'NatGateway'
1089
+
1090
+ # auth_names
1091
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1092
+
1093
+ new_options = opts.merge(
1094
+ :operation => :"NATGatewaysApi.datacenters_natgateways_put",
1095
+ :header_params => header_params,
1096
+ :query_params => query_params,
1097
+ :form_params => form_params,
1098
+ :body => post_body,
1099
+ :auth_names => auth_names,
1100
+ :return_type => return_type
1101
+ )
1102
+
1103
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1104
+ if @api_client.config.debugging
1105
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1106
+ end
1107
+ return data, status_code, headers
1108
+ end
1109
+
1110
+ # Remove rule from NAT Gateway
1111
+ # This will remove a rule from the NAT gateway.
1112
+ # @param datacenter_id [String] The unique ID of the data center.
1113
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1114
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1115
+ # @param [Hash] opts the optional parameters
1116
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1117
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1118
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1119
+ # @return [nil]
1120
+ def datacenters_natgateways_rules_delete(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {})
1121
+ datacenters_natgateways_rules_delete_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts)
1122
+ nil
1123
+ end
1124
+
1125
+ # Remove rule from NAT Gateway
1126
+ # This will remove a rule from the NAT gateway.
1127
+ # @param datacenter_id [String] The unique ID of the data center.
1128
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1129
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1130
+ # @param [Hash] opts the optional parameters
1131
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1132
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1133
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1134
+ # @return [Array<(nil, Integer, Hash)>] nil, response status code and response headers
1135
+ def datacenters_natgateways_rules_delete_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {})
1136
+ if @api_client.config.debugging
1137
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_delete ...'
1138
+ end
1139
+ # verify the required parameter 'datacenter_id' is set
1140
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1141
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_delete"
1142
+ end
1143
+ # verify the required parameter 'nat_gateway_id' is set
1144
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1145
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_delete"
1146
+ end
1147
+ # verify the required parameter 'nat_gateway_rule_id' is set
1148
+ if @api_client.config.client_side_validation && nat_gateway_rule_id.nil?
1149
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_delete"
1150
+ end
1151
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1152
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_delete, must be smaller than or equal to 10.'
1153
+ end
1154
+
1155
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1156
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_delete, must be greater than or equal to 0.'
1157
+ end
1158
+
1159
+ # resource path
1160
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s))
1161
+
1162
+ # query parameters
1163
+ query_params = opts[:query_params] || {}
1164
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1165
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1166
+
1167
+ # header parameters
1168
+ header_params = opts[:header_params] || {}
1169
+ # HTTP header 'Accept' (if needed)
1170
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1171
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1172
+
1173
+ # form parameters
1174
+ form_params = opts[:form_params] || {}
1175
+
1176
+ # http body (model)
1177
+ post_body = opts[:debug_body]
1178
+
1179
+ # return_type
1180
+ return_type = opts[:debug_return_type]
1181
+
1182
+ # auth_names
1183
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1184
+
1185
+ new_options = opts.merge(
1186
+ :operation => :"NATGatewaysApi.datacenters_natgateways_rules_delete",
1187
+ :header_params => header_params,
1188
+ :query_params => query_params,
1189
+ :form_params => form_params,
1190
+ :body => post_body,
1191
+ :auth_names => auth_names,
1192
+ :return_type => return_type
1193
+ )
1194
+
1195
+ data, status_code, headers = @api_client.call_api(:DELETE, local_var_path, new_options)
1196
+ if @api_client.config.debugging
1197
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_delete\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1198
+ end
1199
+ return data, status_code, headers
1200
+ end
1201
+
1202
+ # Retrieve a NAT Gateway Rule
1203
+ # Retrieves the attributes of a given NAT gateway rule.
1204
+ # @param datacenter_id [String] The unique ID of the data center.
1205
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1206
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1207
+ # @param [Hash] opts the optional parameters
1208
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1209
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1210
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1211
+ # @return [NatGatewayRule]
1212
+ def datacenters_natgateways_rules_find_by_nat_gateway_rule_id(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {})
1213
+ data, _status_code, _headers = datacenters_natgateways_rules_find_by_nat_gateway_rule_id_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts)
1214
+ data
1215
+ end
1216
+
1217
+ # Retrieve a NAT Gateway Rule
1218
+ # Retrieves the attributes of a given NAT gateway rule.
1219
+ # @param datacenter_id [String] The unique ID of the data center.
1220
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1221
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1222
+ # @param [Hash] opts the optional parameters
1223
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1224
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1225
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1226
+ # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers
1227
+ def datacenters_natgateways_rules_find_by_nat_gateway_rule_id_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, opts = {})
1228
+ if @api_client.config.debugging
1229
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id ...'
1230
+ end
1231
+ # verify the required parameter 'datacenter_id' is set
1232
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1233
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id"
1234
+ end
1235
+ # verify the required parameter 'nat_gateway_id' is set
1236
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1237
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id"
1238
+ end
1239
+ # verify the required parameter 'nat_gateway_rule_id' is set
1240
+ if @api_client.config.client_side_validation && nat_gateway_rule_id.nil?
1241
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id"
1242
+ end
1243
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1244
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id, must be smaller than or equal to 10.'
1245
+ end
1246
+
1247
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1248
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id, must be greater than or equal to 0.'
1249
+ end
1250
+
1251
+ # resource path
1252
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s))
1253
+
1254
+ # query parameters
1255
+ query_params = opts[:query_params] || {}
1256
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1257
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1258
+
1259
+ # header parameters
1260
+ header_params = opts[:header_params] || {}
1261
+ # HTTP header 'Accept' (if needed)
1262
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1263
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1264
+
1265
+ # form parameters
1266
+ form_params = opts[:form_params] || {}
1267
+
1268
+ # http body (model)
1269
+ post_body = opts[:debug_body]
1270
+
1271
+ # return_type
1272
+ return_type = opts[:debug_return_type] || 'NatGatewayRule'
1273
+
1274
+ # auth_names
1275
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1276
+
1277
+ new_options = opts.merge(
1278
+ :operation => :"NATGatewaysApi.datacenters_natgateways_rules_find_by_nat_gateway_rule_id",
1279
+ :header_params => header_params,
1280
+ :query_params => query_params,
1281
+ :form_params => form_params,
1282
+ :body => post_body,
1283
+ :auth_names => auth_names,
1284
+ :return_type => return_type
1285
+ )
1286
+
1287
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1288
+ if @api_client.config.debugging
1289
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_find_by_nat_gateway_rule_id\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1290
+ end
1291
+ return data, status_code, headers
1292
+ end
1293
+
1294
+ # List NAT Gateways Rules
1295
+ # Retrieve a list of rules of a NAT Gateway within the datacenter.
1296
+ # @param datacenter_id [String] The unique ID of the data center.
1297
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1298
+ # @param [Hash] opts the optional parameters
1299
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1300
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1301
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1302
+ # @return [NatGatewayRules]
1303
+ def datacenters_natgateways_rules_get(datacenter_id, nat_gateway_id, opts = {})
1304
+ data, _status_code, _headers = datacenters_natgateways_rules_get_with_http_info(datacenter_id, nat_gateway_id, opts)
1305
+ data
1306
+ end
1307
+
1308
+ # List NAT Gateways Rules
1309
+ # Retrieve a list of rules of a NAT Gateway within the datacenter.
1310
+ # @param datacenter_id [String] The unique ID of the data center.
1311
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1312
+ # @param [Hash] opts the optional parameters
1313
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1314
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1315
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1316
+ # @return [Array<(NatGatewayRules, Integer, Hash)>] NatGatewayRules data, response status code and response headers
1317
+ def datacenters_natgateways_rules_get_with_http_info(datacenter_id, nat_gateway_id, opts = {})
1318
+ if @api_client.config.debugging
1319
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_get ...'
1320
+ end
1321
+ # verify the required parameter 'datacenter_id' is set
1322
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1323
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_get"
1324
+ end
1325
+ # verify the required parameter 'nat_gateway_id' is set
1326
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1327
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_get"
1328
+ end
1329
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1330
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_get, must be smaller than or equal to 10.'
1331
+ end
1332
+
1333
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1334
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_get, must be greater than or equal to 0.'
1335
+ end
1336
+
1337
+ # resource path
1338
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
1339
+
1340
+ # query parameters
1341
+ query_params = opts[:query_params] || {}
1342
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1343
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1344
+
1345
+ # header parameters
1346
+ header_params = opts[:header_params] || {}
1347
+ # HTTP header 'Accept' (if needed)
1348
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1349
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1350
+
1351
+ # form parameters
1352
+ form_params = opts[:form_params] || {}
1353
+
1354
+ # http body (model)
1355
+ post_body = opts[:debug_body]
1356
+
1357
+ # return_type
1358
+ return_type = opts[:debug_return_type] || 'NatGatewayRules'
1359
+
1360
+ # auth_names
1361
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1362
+
1363
+ new_options = opts.merge(
1364
+ :operation => :"NATGatewaysApi.datacenters_natgateways_rules_get",
1365
+ :header_params => header_params,
1366
+ :query_params => query_params,
1367
+ :form_params => form_params,
1368
+ :body => post_body,
1369
+ :auth_names => auth_names,
1370
+ :return_type => return_type
1371
+ )
1372
+
1373
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
1374
+ if @api_client.config.debugging
1375
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1376
+ end
1377
+ return data, status_code, headers
1378
+ end
1379
+
1380
+ # Partially modify a rule of the NAT gateway
1381
+ # You can use to partially update a rule of a NAT gateway.
1382
+ # @param datacenter_id [String] The unique ID of the data center.
1383
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1384
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1385
+ # @param nat_gateway_rule_properties [NatGatewayRuleProperties] Properties of a NAT gateway rule to be updated
1386
+ # @param [Hash] opts the optional parameters
1387
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1388
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1389
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1390
+ # @return [NatGatewayRule]
1391
+ def datacenters_natgateways_rules_patch(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule_properties, opts = {})
1392
+ data, _status_code, _headers = datacenters_natgateways_rules_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule_properties, opts)
1393
+ data
1394
+ end
1395
+
1396
+ # Partially modify a rule of the NAT gateway
1397
+ # You can use to partially update a rule of a NAT gateway.
1398
+ # @param datacenter_id [String] The unique ID of the data center.
1399
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1400
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1401
+ # @param nat_gateway_rule_properties [NatGatewayRuleProperties] Properties of a NAT gateway rule to be updated
1402
+ # @param [Hash] opts the optional parameters
1403
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1404
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1405
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1406
+ # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers
1407
+ def datacenters_natgateways_rules_patch_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule_properties, opts = {})
1408
+ if @api_client.config.debugging
1409
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_patch ...'
1410
+ end
1411
+ # verify the required parameter 'datacenter_id' is set
1412
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1413
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_patch"
1414
+ end
1415
+ # verify the required parameter 'nat_gateway_id' is set
1416
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1417
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_patch"
1418
+ end
1419
+ # verify the required parameter 'nat_gateway_rule_id' is set
1420
+ if @api_client.config.client_side_validation && nat_gateway_rule_id.nil?
1421
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_patch"
1422
+ end
1423
+ # verify the required parameter 'nat_gateway_rule_properties' is set
1424
+ if @api_client.config.client_side_validation && nat_gateway_rule_properties.nil?
1425
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_properties' when calling NATGatewaysApi.datacenters_natgateways_rules_patch"
1426
+ end
1427
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1428
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_patch, must be smaller than or equal to 10.'
1429
+ end
1430
+
1431
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1432
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_patch, must be greater than or equal to 0.'
1433
+ end
1434
+
1435
+ # resource path
1436
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s))
1437
+
1438
+ # query parameters
1439
+ query_params = opts[:query_params] || {}
1440
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1441
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1442
+
1443
+ # header parameters
1444
+ header_params = opts[:header_params] || {}
1445
+ # HTTP header 'Accept' (if needed)
1446
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1447
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1448
+
1449
+ # form parameters
1450
+ form_params = opts[:form_params] || {}
1451
+
1452
+ # http body (model)
1453
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_rule_properties)
1454
+
1455
+ # return_type
1456
+ return_type = opts[:debug_return_type] || 'NatGatewayRule'
1457
+
1458
+ # auth_names
1459
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1460
+
1461
+ new_options = opts.merge(
1462
+ :operation => :"NATGatewaysApi.datacenters_natgateways_rules_patch",
1463
+ :header_params => header_params,
1464
+ :query_params => query_params,
1465
+ :form_params => form_params,
1466
+ :body => post_body,
1467
+ :auth_names => auth_names,
1468
+ :return_type => return_type
1469
+ )
1470
+
1471
+ data, status_code, headers = @api_client.call_api(:PATCH, local_var_path, new_options)
1472
+ if @api_client.config.debugging
1473
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_patch\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1474
+ end
1475
+ return data, status_code, headers
1476
+ end
1477
+
1478
+ # Create a NAT Gateway Rule
1479
+ # Creates a rule within the NAT Gateway of a datacenter.
1480
+ # @param datacenter_id [String] The unique ID of the data center.
1481
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1482
+ # @param nat_gateway_rule [NatGatewayRule] NAT gateway rule to be created
1483
+ # @param [Hash] opts the optional parameters
1484
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1485
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1486
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1487
+ # @return [NatGatewayRule]
1488
+ def datacenters_natgateways_rules_post(datacenter_id, nat_gateway_id, nat_gateway_rule, opts = {})
1489
+ data, _status_code, _headers = datacenters_natgateways_rules_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule, opts)
1490
+ data
1491
+ end
1492
+
1493
+ # Create a NAT Gateway Rule
1494
+ # Creates a rule within the NAT Gateway of a datacenter.
1495
+ # @param datacenter_id [String] The unique ID of the data center.
1496
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1497
+ # @param nat_gateway_rule [NatGatewayRule] NAT gateway rule to be created
1498
+ # @param [Hash] opts the optional parameters
1499
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1500
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1501
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1502
+ # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers
1503
+ def datacenters_natgateways_rules_post_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule, opts = {})
1504
+ if @api_client.config.debugging
1505
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_post ...'
1506
+ end
1507
+ # verify the required parameter 'datacenter_id' is set
1508
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1509
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_post"
1510
+ end
1511
+ # verify the required parameter 'nat_gateway_id' is set
1512
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1513
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_post"
1514
+ end
1515
+ # verify the required parameter 'nat_gateway_rule' is set
1516
+ if @api_client.config.client_side_validation && nat_gateway_rule.nil?
1517
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule' when calling NATGatewaysApi.datacenters_natgateways_rules_post"
1518
+ end
1519
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1520
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_post, must be smaller than or equal to 10.'
1521
+ end
1522
+
1523
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1524
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_post, must be greater than or equal to 0.'
1525
+ end
1526
+
1527
+ # resource path
1528
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s))
1529
+
1530
+ # query parameters
1531
+ query_params = opts[:query_params] || {}
1532
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1533
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1534
+
1535
+ # header parameters
1536
+ header_params = opts[:header_params] || {}
1537
+ # HTTP header 'Accept' (if needed)
1538
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1539
+ # HTTP header 'Content-Type'
1540
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1541
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1542
+
1543
+ # form parameters
1544
+ form_params = opts[:form_params] || {}
1545
+
1546
+ # http body (model)
1547
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_rule)
1548
+
1549
+ # return_type
1550
+ return_type = opts[:debug_return_type] || 'NatGatewayRule'
1551
+
1552
+ # auth_names
1553
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1554
+
1555
+ new_options = opts.merge(
1556
+ :operation => :"NATGatewaysApi.datacenters_natgateways_rules_post",
1557
+ :header_params => header_params,
1558
+ :query_params => query_params,
1559
+ :form_params => form_params,
1560
+ :body => post_body,
1561
+ :auth_names => auth_names,
1562
+ :return_type => return_type
1563
+ )
1564
+
1565
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
1566
+ if @api_client.config.debugging
1567
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1568
+ end
1569
+ return data, status_code, headers
1570
+ end
1571
+
1572
+ # Modify a rule of the NAT gateway
1573
+ # You can use to update a rule of the NAT gateway.
1574
+ # @param datacenter_id [String] The unique ID of the data center.
1575
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1576
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1577
+ # @param nat_gateway_rule [NatGatewayRulePut] Modified NAT Gateway Rule
1578
+ # @param [Hash] opts the optional parameters
1579
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines). (default to true)
1580
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on (default to 0)
1581
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1582
+ # @return [NatGatewayRule]
1583
+ def datacenters_natgateways_rules_put(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule, opts = {})
1584
+ data, _status_code, _headers = datacenters_natgateways_rules_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule, opts)
1585
+ data
1586
+ end
1587
+
1588
+ # Modify a rule of the NAT gateway
1589
+ # You can use to update a rule of the NAT gateway.
1590
+ # @param datacenter_id [String] The unique ID of the data center.
1591
+ # @param nat_gateway_id [String] The unique ID of the NAT gateway
1592
+ # @param nat_gateway_rule_id [String] The unique ID of the NAT gateway rule
1593
+ # @param nat_gateway_rule [NatGatewayRulePut] Modified NAT Gateway Rule
1594
+ # @param [Hash] opts the optional parameters
1595
+ # @option opts [Boolean] :pretty Controls whether the response is pretty-printed (with indentations and new lines).
1596
+ # @option opts [Integer] :depth Controls the detail depth of the response objects. GET /datacenters/[ID] - depth&#x3D;0: Only direct properties are included; children (servers and other elements) are not included. - depth&#x3D;1: Direct properties and children references are included. - depth&#x3D;2: Direct properties and children properties are included. - depth&#x3D;3: Direct properties and children properties and children&#39;s children are included. - depth&#x3D;... and so on
1597
+ # @option opts [Integer] :x_contract_number Users with multiple contracts must provide the contract number, against which all API requests are to be executed.
1598
+ # @return [Array<(NatGatewayRule, Integer, Hash)>] NatGatewayRule data, response status code and response headers
1599
+ def datacenters_natgateways_rules_put_with_http_info(datacenter_id, nat_gateway_id, nat_gateway_rule_id, nat_gateway_rule, opts = {})
1600
+ if @api_client.config.debugging
1601
+ @api_client.config.logger.debug 'Calling API: NATGatewaysApi.datacenters_natgateways_rules_put ...'
1602
+ end
1603
+ # verify the required parameter 'datacenter_id' is set
1604
+ if @api_client.config.client_side_validation && datacenter_id.nil?
1605
+ fail ArgumentError, "Missing the required parameter 'datacenter_id' when calling NATGatewaysApi.datacenters_natgateways_rules_put"
1606
+ end
1607
+ # verify the required parameter 'nat_gateway_id' is set
1608
+ if @api_client.config.client_side_validation && nat_gateway_id.nil?
1609
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_id' when calling NATGatewaysApi.datacenters_natgateways_rules_put"
1610
+ end
1611
+ # verify the required parameter 'nat_gateway_rule_id' is set
1612
+ if @api_client.config.client_side_validation && nat_gateway_rule_id.nil?
1613
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule_id' when calling NATGatewaysApi.datacenters_natgateways_rules_put"
1614
+ end
1615
+ # verify the required parameter 'nat_gateway_rule' is set
1616
+ if @api_client.config.client_side_validation && nat_gateway_rule.nil?
1617
+ fail ArgumentError, "Missing the required parameter 'nat_gateway_rule' when calling NATGatewaysApi.datacenters_natgateways_rules_put"
1618
+ end
1619
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] > 10
1620
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_put, must be smaller than or equal to 10.'
1621
+ end
1622
+
1623
+ if @api_client.config.client_side_validation && !opts[:'depth'].nil? && opts[:'depth'] < 0
1624
+ fail ArgumentError, 'invalid value for "opts[:"depth"]" when calling NATGatewaysApi.datacenters_natgateways_rules_put, must be greater than or equal to 0.'
1625
+ end
1626
+
1627
+ # resource path
1628
+ local_var_path = '/datacenters/{datacenterId}/natgateways/{natGatewayId}/rules/{natGatewayRuleId}'.sub('{' + 'datacenterId' + '}', CGI.escape(datacenter_id.to_s)).sub('{' + 'natGatewayId' + '}', CGI.escape(nat_gateway_id.to_s)).sub('{' + 'natGatewayRuleId' + '}', CGI.escape(nat_gateway_rule_id.to_s))
1629
+
1630
+ # query parameters
1631
+ query_params = opts[:query_params] || {}
1632
+ query_params[:'pretty'] = opts[:'pretty'] if !opts[:'pretty'].nil?
1633
+ query_params[:'depth'] = opts[:'depth'] if !opts[:'depth'].nil?
1634
+
1635
+ # header parameters
1636
+ header_params = opts[:header_params] || {}
1637
+ # HTTP header 'Accept' (if needed)
1638
+ header_params['Accept'] = @api_client.select_header_accept(['application/json'])
1639
+ # HTTP header 'Content-Type'
1640
+ header_params['Content-Type'] = @api_client.select_header_content_type(['application/json'])
1641
+ header_params[:'X-Contract-Number'] = opts[:'x_contract_number'] if !opts[:'x_contract_number'].nil?
1642
+
1643
+ # form parameters
1644
+ form_params = opts[:form_params] || {}
1645
+
1646
+ # http body (model)
1647
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(nat_gateway_rule)
1648
+
1649
+ # return_type
1650
+ return_type = opts[:debug_return_type] || 'NatGatewayRule'
1651
+
1652
+ # auth_names
1653
+ auth_names = opts[:debug_auth_names] || ['Basic Authentication', 'Token Authentication']
1654
+
1655
+ new_options = opts.merge(
1656
+ :operation => :"NATGatewaysApi.datacenters_natgateways_rules_put",
1657
+ :header_params => header_params,
1658
+ :query_params => query_params,
1659
+ :form_params => form_params,
1660
+ :body => post_body,
1661
+ :auth_names => auth_names,
1662
+ :return_type => return_type
1663
+ )
1664
+
1665
+ data, status_code, headers = @api_client.call_api(:PUT, local_var_path, new_options)
1666
+ if @api_client.config.debugging
1667
+ @api_client.config.logger.debug "API called: NATGatewaysApi#datacenters_natgateways_rules_put\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
1668
+ end
1669
+ return data, status_code, headers
1670
+ end
1671
+ end
1672
+ end