pnap_bmc_api 2.2.2 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/VERSION +1 -1
  4. data/docs/IpBlocksConfiguration.md +1 -1
  5. data/docs/OsConfigurationCloudInit.md +1 -1
  6. data/docs/OsConfigurationWindows.md +3 -1
  7. data/docs/PrivateNetworkConfiguration.md +1 -1
  8. data/docs/PublicNetworkConfiguration.md +1 -1
  9. data/docs/ReservationTransferDetails.md +18 -0
  10. data/docs/Server.md +3 -3
  11. data/docs/ServerCreate.md +3 -3
  12. data/docs/ServerNetworkUpdate.md +1 -1
  13. data/docs/ServerPrivateNetwork.md +3 -1
  14. data/docs/ServerProvision.md +1 -1
  15. data/docs/ServerPublicNetwork.md +5 -3
  16. data/docs/ServersApi.md +72 -0
  17. data/lib/pnap_bmc_api/api/quotas_api.rb +4 -4
  18. data/lib/pnap_bmc_api/api/servers_api.rb +97 -23
  19. data/lib/pnap_bmc_api/api/ssh_keys_api.rb +6 -6
  20. data/lib/pnap_bmc_api/api_client.rb +17 -14
  21. data/lib/pnap_bmc_api/api_error.rb +1 -1
  22. data/lib/pnap_bmc_api/api_model_base.rb +88 -0
  23. data/lib/pnap_bmc_api/configuration.rb +11 -1
  24. data/lib/pnap_bmc_api/models/action_result.rb +21 -78
  25. data/lib/pnap_bmc_api/models/delete_result.rb +31 -78
  26. data/lib/pnap_bmc_api/models/delete_ssh_key_result.rb +31 -78
  27. data/lib/pnap_bmc_api/models/error.rb +21 -78
  28. data/lib/pnap_bmc_api/models/esxi_datastore_configuration.rb +13 -80
  29. data/lib/pnap_bmc_api/models/esxi_os_configuration.rb +11 -78
  30. data/lib/pnap_bmc_api/models/gpu_configuration.rb +11 -78
  31. data/lib/pnap_bmc_api/models/ip_blocks_configuration.rb +12 -79
  32. data/lib/pnap_bmc_api/models/network_configuration.rb +11 -78
  33. data/lib/pnap_bmc_api/models/os_configuration.rb +11 -78
  34. data/lib/pnap_bmc_api/models/os_configuration_cloud_init.rb +11 -78
  35. data/lib/pnap_bmc_api/models/os_configuration_map.rb +11 -78
  36. data/lib/pnap_bmc_api/models/os_configuration_map_esxi.rb +11 -78
  37. data/lib/pnap_bmc_api/models/os_configuration_map_proxmox.rb +11 -78
  38. data/lib/pnap_bmc_api/models/os_configuration_netris_controller.rb +11 -78
  39. data/lib/pnap_bmc_api/models/os_configuration_netris_softgate.rb +11 -78
  40. data/lib/pnap_bmc_api/models/os_configuration_windows.rb +27 -82
  41. data/lib/pnap_bmc_api/models/private_network_configuration.rb +12 -79
  42. data/lib/pnap_bmc_api/models/public_network_configuration.rb +12 -79
  43. data/lib/pnap_bmc_api/models/quota.rb +61 -78
  44. data/lib/pnap_bmc_api/models/quota_edit_limit_request.rb +11 -78
  45. data/lib/pnap_bmc_api/models/quota_edit_limit_request_details.rb +21 -78
  46. data/lib/pnap_bmc_api/models/relinquish_ip_block.rb +11 -78
  47. data/lib/pnap_bmc_api/models/reservation_transfer_details.rb +166 -0
  48. data/lib/pnap_bmc_api/models/reset_result.rb +21 -78
  49. data/lib/pnap_bmc_api/models/server.rb +116 -83
  50. data/lib/pnap_bmc_api/models/server_create.rb +46 -83
  51. data/lib/pnap_bmc_api/models/server_ip_block.rb +21 -78
  52. data/lib/pnap_bmc_api/models/server_network_update.rb +12 -79
  53. data/lib/pnap_bmc_api/models/server_patch.rb +13 -80
  54. data/lib/pnap_bmc_api/models/server_private_network.rb +35 -82
  55. data/lib/pnap_bmc_api/models/server_provision.rb +24 -81
  56. data/lib/pnap_bmc_api/models/server_public_network.rb +36 -83
  57. data/lib/pnap_bmc_api/models/server_reserve.rb +21 -78
  58. data/lib/pnap_bmc_api/models/server_reset.rb +11 -78
  59. data/lib/pnap_bmc_api/models/ssh_key.rb +81 -78
  60. data/lib/pnap_bmc_api/models/ssh_key_create.rb +23 -80
  61. data/lib/pnap_bmc_api/models/ssh_key_update.rb +23 -80
  62. data/lib/pnap_bmc_api/models/storage_configuration.rb +11 -78
  63. data/lib/pnap_bmc_api/models/storage_configuration_root_partition.rb +11 -78
  64. data/lib/pnap_bmc_api/models/tag_assignment.rb +41 -78
  65. data/lib/pnap_bmc_api/models/tag_assignment_request.rb +21 -78
  66. data/lib/pnap_bmc_api/version.rb +1 -2
  67. data/lib/pnap_bmc_api.rb +3 -1
  68. data/pnap_bmc_api.gemspec +6 -6
  69. data/spec/api/quotas_api_spec.rb +1 -1
  70. data/spec/api/servers_api_spec.rb +14 -1
  71. data/spec/api/ssh_keys_api_spec.rb +1 -1
  72. data/spec/models/action_result_spec.rb +2 -2
  73. data/spec/models/delete_result_spec.rb +2 -2
  74. data/spec/models/delete_ssh_key_result_spec.rb +2 -2
  75. data/spec/models/error_spec.rb +2 -2
  76. data/spec/models/esxi_datastore_configuration_spec.rb +2 -2
  77. data/spec/models/esxi_os_configuration_spec.rb +2 -2
  78. data/spec/models/gpu_configuration_spec.rb +2 -2
  79. data/spec/models/ip_blocks_configuration_spec.rb +2 -2
  80. data/spec/models/network_configuration_spec.rb +2 -2
  81. data/spec/models/os_configuration_cloud_init_spec.rb +2 -2
  82. data/spec/models/os_configuration_map_esxi_spec.rb +2 -2
  83. data/spec/models/os_configuration_map_proxmox_spec.rb +2 -2
  84. data/spec/models/os_configuration_map_spec.rb +2 -2
  85. data/spec/models/os_configuration_netris_controller_spec.rb +2 -2
  86. data/spec/models/os_configuration_netris_softgate_spec.rb +2 -2
  87. data/spec/models/os_configuration_spec.rb +2 -2
  88. data/spec/models/os_configuration_windows_spec.rb +8 -2
  89. data/spec/models/private_network_configuration_spec.rb +2 -2
  90. data/spec/models/public_network_configuration_spec.rb +2 -2
  91. data/spec/models/quota_edit_limit_request_details_spec.rb +2 -2
  92. data/spec/models/quota_edit_limit_request_spec.rb +2 -2
  93. data/spec/models/quota_spec.rb +2 -2
  94. data/spec/models/relinquish_ip_block_spec.rb +2 -2
  95. data/spec/models/reservation_transfer_details_spec.rb +36 -0
  96. data/spec/models/reset_result_spec.rb +2 -2
  97. data/spec/models/server_create_spec.rb +2 -2
  98. data/spec/models/server_ip_block_spec.rb +2 -2
  99. data/spec/models/server_network_update_spec.rb +2 -2
  100. data/spec/models/server_patch_spec.rb +2 -2
  101. data/spec/models/server_private_network_spec.rb +8 -2
  102. data/spec/models/server_provision_spec.rb +2 -2
  103. data/spec/models/server_public_network_spec.rb +8 -2
  104. data/spec/models/server_reserve_spec.rb +2 -2
  105. data/spec/models/server_reset_spec.rb +2 -2
  106. data/spec/models/server_spec.rb +2 -2
  107. data/spec/models/ssh_key_create_spec.rb +2 -2
  108. data/spec/models/ssh_key_spec.rb +2 -2
  109. data/spec/models/ssh_key_update_spec.rb +2 -2
  110. data/spec/models/storage_configuration_root_partition_spec.rb +2 -2
  111. data/spec/models/storage_configuration_spec.rb +2 -2
  112. data/spec/models/tag_assignment_request_spec.rb +2 -2
  113. data/spec/models/tag_assignment_spec.rb +2 -2
  114. data/spec/spec_helper.rb +1 -1
  115. metadata +45 -36
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.1
7
7
  Contact: support@phoenixnap.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 7.2.0
9
+ Generator version: 7.20.0
10
10
 
11
11
  =end
12
12
 
@@ -15,7 +15,7 @@ require 'time'
15
15
 
16
16
  module BmcApi
17
17
  # Bare metal server.
18
- class Server
18
+ class Server < ApiModelBase
19
19
  # The unique identifier of the server.
20
20
  attr_accessor :id
21
21
 
@@ -28,13 +28,13 @@ module BmcApi
28
28
  # Description of server.
29
29
  attr_accessor :description
30
30
 
31
- # The server’s OS ID used when the server was created. Currently this field should be set to either `ubuntu/bionic`, `ubuntu/focal`, `ubuntu/jammy`, `ubuntu/jammy+pytorch`, `ubuntu/noble`, `centos/centos7`, `centos/centos8`, `windows/srv2019std`, `windows/srv2019dc`, `windows/srv2022std`, `windows/srv2022dc`, `windows/srv2025std`, `windows/srv2025dc`, `esxi/esxi70`, `esxi/esxi80`, `almalinux/almalinux8`, `rockylinux/rockylinux8`, `almalinux/almalinux9`, `rockylinux/rockylinux9`, `virtuozzo/virtuozzo7`, `oraclelinux/oraclelinux9`, `debian/bullseye`, `debian/bookworm`, `proxmox/bullseye`, `proxmox/proxmox8`, `netris/controller`, `netris/softgate_1g`, `netris/softgate_10g` or `netris/softgate_25g`.
31
+ # The server’s OS ID used when the server was created. Currently this field should be set to either `ubuntu/bionic`, `ubuntu/focal`, `ubuntu/jammy`, `ubuntu/jammy+pytorch`, `ubuntu/noble`, `centos/centos7`, `centos/centos8`, `windows/srv2019std`, `windows/srv2019dc`, `windows/srv2022std`, `windows/srv2022dc`, `windows/srv2025std`, `windows/srv2025dc`, `esxi/esxi70`, `esxi/esxi80`, `almalinux/almalinux8`, `rockylinux/rockylinux8`, `almalinux/almalinux9`, `rockylinux/rockylinux9`, `virtuozzo/virtuozzo7`, `oraclelinux/oraclelinux9`, `debian/bullseye`, `debian/bookworm`, `debian/trixie`, `proxmox/bullseye`, `proxmox/proxmox8`, `proxmox/proxmox9`, `netris/controller`, `netris/softgate_1g`, `netris/softgate_10g` or `netris/softgate_25g`.
32
32
  attr_accessor :os
33
33
 
34
- # Server type ID. Cannot be changed once a server is created. Currently this field should be set to either `s0.d1.small`, `s0.d1.medium`, `s1.c1.small`, `s1.c1.medium`, `s1.c2.medium`, `s1.c2.large`, `s1.e1.small`, `s1.e1.medium`, `s1.e1.large`, `s2.c1.small`, `s2.c1.medium`, `s2.c1.large`, `s2.c2.small`, `s2.c2.medium`, `s2.c2.large`, `d1.c1.small`, `d1.c2.small`, `d1.c3.small`, `d1.c4.small`, `d1.c1.medium`, `d1.c2.medium`, `d1.c3.medium`, `d1.c4.medium`, `d1.c1.large`, `d1.c2.large`, `d1.c3.large`, `d1.c4.large`, `d1.m1.medium`, `d1.m2.medium`, `d1.m3.medium`, `d1.m4.medium`, `d2.c1.medium`, `d2.c2.medium`, `d2.c3.medium`, `d2.c4.medium`, `d2.c5.medium`, `d2.c1.large`, `d2.c2.large`, `d2.c3.large`, `d2.c4.large`, `d2.c5.large`, `d2.m1.xlarge`, `d2.m2.xxlarge`, `d2.m3.xlarge`, `d2.m4.xlarge`, `d2.m5.xlarge`, `d2.c4.db1.pliops1`, `d3.m4.xlarge`, `d3.m5.xlarge`, `d3.m6.xlarge`, `a1.c5.large`, `a1.c5.xlarge`, `d3.s5.xlarge`, `d3.m4.xxlarge`, `d3.m5.xxlarge`, `d3.m6.xxlarge`, `s3.c3.medium`, `s3.c3.large`, `d3.c4.medium`, `d3.c5.medium`, `d3.c6.medium`, `d3.c1.large`, `d3.c2.large`, `d3.c3.large`, `d3.m1.xlarge`, `d3.m2.xlarge`, `d3.m3.xlarge`, `d3.g2.c1.xlarge`, `d3.g2.c2.xlarge`, `d3.g2.c3.xlarge`, s4.x6.c6.large or s4.x6.m6.xlarge.
34
+ # Server type ID. Cannot be changed once a server is created. Currently this field should be set to either `s0.d1.small`, `s0.d1.medium`, `s1.c1.small`, `s1.c1.medium`, `s1.c2.medium`, `s1.c2.large`, `s1.e1.small`, `s1.e1.medium`, `s1.e1.large`, `s2.c1.small`, `s2.c1.medium`, `s2.c1.large`, `s2.c2.small`, `s2.c2.medium`, `s2.c2.large`, `d1.c4.small`, `d1.c4.medium`, `d1.c4.large`, `d1.m4.medium`, `d2.c1.medium`, `d2.c2.medium`, `d2.c3.medium`, `d2.c4.medium`, `d2.c5.medium`, `d2.c1.large`, `d2.c2.large`, `d2.c3.large`, `d2.c4.large`, `d2.c5.large`, `d2.m1.xlarge`, `d2.m2.xxlarge`, `d2.m3.xlarge`, `d2.m4.xlarge`, `d2.m5.xlarge`, `d2.c4.db1.pliops1`, `d3.m4.xlarge`, `d3.m5.xlarge`, `d3.m6.xlarge`, `a1.c5.large`, `a1.c5.xlarge`, `d3.s5.xlarge`, `d3.m4.xxlarge`, `d3.m5.xxlarge`, `d3.m6.xxlarge`, `s3.c3.medium`, `s3.c3.large`, `d3.c4.medium`, `d3.c5.medium`, `d3.c6.medium`, `d3.c1.large`, `d3.c2.large`, `d3.c3.large`, `d3.m1.xlarge`, `d3.m2.xlarge`, `d3.m3.xlarge`, `d3.g2.c1.xlarge`, `d3.g2.c2.xlarge`, `d3.g2.c3.xlarge`, `d3.g3.c2.medium`, `s4.x6.c6.large`, `s4.x6.m6.xlarge`, `s5.x6.c3.medium`, `s5.x6.c3.large`, `s5.x6.c8.medium`, `s5.x6.c9.medium`, `s5.x6.c8.large`, `s5.x6.c9.large`, `s5.x6.m8.xlarge`, `s5.x6.m9.xlarge`, `s4.c3.medium`, `s4.c6.medium`, `s4.c6.large`, `s4.c6.xlarge`, `s4.s2.large`, `a2.c9.large` or `a2.c9.xlarge`.
35
35
  attr_accessor :type
36
36
 
37
- # Server location ID. Cannot be changed once a server is created. Currently this field should be set to `PHX`, `ASH`, `SGP`, `NLD`, `CHI`, `SEA` or `AUS`.
37
+ # Server location ID. Cannot be changed once a server is created. Currently this field should be set to `PHX`, `ASH`, `SGP`, `NLD`, `CHI` or `SEA`.
38
38
  attr_accessor :location
39
39
 
40
40
  # A description of the machine CPU.
@@ -130,9 +130,14 @@ module BmcApi
130
130
  }
131
131
  end
132
132
 
133
+ # Returns attribute mapping this model knows about
134
+ def self.acceptable_attribute_map
135
+ attribute_map
136
+ end
137
+
133
138
  # Returns all the JSON keys this model knows about
134
139
  def self.acceptable_attributes
135
- attribute_map.values
140
+ acceptable_attribute_map.values
136
141
  end
137
142
 
138
143
  # Attribute type mapping.
@@ -183,9 +188,10 @@ module BmcApi
183
188
  end
184
189
 
185
190
  # check to see if the attribute exists and convert string to symbol for hash key
191
+ acceptable_attribute_map = self.class.acceptable_attribute_map
186
192
  attributes = attributes.each_with_object({}) { |(k, v), h|
187
- if (!self.class.attribute_map.key?(k.to_sym))
188
- fail ArgumentError, "`#{k}` is not a valid attribute in `BmcApi::Server`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
193
+ if (!acceptable_attribute_map.key?(k.to_sym))
194
+ fail ArgumentError, "`#{k}` is not a valid attribute in `BmcApi::Server`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
189
195
  end
190
196
  h[k.to_sym] = v
191
197
  }
@@ -363,7 +369,7 @@ module BmcApi
363
369
  end
364
370
 
365
371
  if @hostname.to_s.length < 1
366
- invalid_properties.push('invalid value for "hostname", the character length must be great than or equal to 1.')
372
+ invalid_properties.push('invalid value for "hostname", the character length must be greater than or equal to 1.')
367
373
  end
368
374
 
369
375
  pattern = Regexp.new(/^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$/)
@@ -477,6 +483,26 @@ module BmcApi
477
483
  true
478
484
  end
479
485
 
486
+ # Custom attribute writer method with validation
487
+ # @param [Object] id Value to be assigned
488
+ def id=(id)
489
+ if id.nil?
490
+ fail ArgumentError, 'id cannot be nil'
491
+ end
492
+
493
+ @id = id
494
+ end
495
+
496
+ # Custom attribute writer method with validation
497
+ # @param [Object] status Value to be assigned
498
+ def status=(status)
499
+ if status.nil?
500
+ fail ArgumentError, 'status cannot be nil'
501
+ end
502
+
503
+ @status = status
504
+ end
505
+
480
506
  # Custom attribute writer method with validation
481
507
  # @param [Object] hostname Value to be assigned
482
508
  def hostname=(hostname)
@@ -489,7 +515,7 @@ module BmcApi
489
515
  end
490
516
 
491
517
  if hostname.to_s.length < 1
492
- fail ArgumentError, 'invalid value for "hostname", the character length must be great than or equal to 1.'
518
+ fail ArgumentError, 'invalid value for "hostname", the character length must be greater than or equal to 1.'
493
519
  end
494
520
 
495
521
  pattern = Regexp.new(/^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$/)
@@ -514,6 +540,36 @@ module BmcApi
514
540
  @description = description
515
541
  end
516
542
 
543
+ # Custom attribute writer method with validation
544
+ # @param [Object] type Value to be assigned
545
+ def type=(type)
546
+ if type.nil?
547
+ fail ArgumentError, 'type cannot be nil'
548
+ end
549
+
550
+ @type = type
551
+ end
552
+
553
+ # Custom attribute writer method with validation
554
+ # @param [Object] location Value to be assigned
555
+ def location=(location)
556
+ if location.nil?
557
+ fail ArgumentError, 'location cannot be nil'
558
+ end
559
+
560
+ @location = location
561
+ end
562
+
563
+ # Custom attribute writer method with validation
564
+ # @param [Object] cpu Value to be assigned
565
+ def cpu=(cpu)
566
+ if cpu.nil?
567
+ fail ArgumentError, 'cpu cannot be nil'
568
+ end
569
+
570
+ @cpu = cpu
571
+ end
572
+
517
573
  # Custom attribute writer method with validation
518
574
  # @param [Object] cpu_count Value to be assigned
519
575
  def cpu_count=(cpu_count)
@@ -556,6 +612,26 @@ module BmcApi
556
612
  @cpu_frequency = cpu_frequency
557
613
  end
558
614
 
615
+ # Custom attribute writer method with validation
616
+ # @param [Object] ram Value to be assigned
617
+ def ram=(ram)
618
+ if ram.nil?
619
+ fail ArgumentError, 'ram cannot be nil'
620
+ end
621
+
622
+ @ram = ram
623
+ end
624
+
625
+ # Custom attribute writer method with validation
626
+ # @param [Object] storage Value to be assigned
627
+ def storage=(storage)
628
+ if storage.nil?
629
+ fail ArgumentError, 'storage cannot be nil'
630
+ end
631
+
632
+ @storage = storage
633
+ end
634
+
559
635
  # Custom attribute writer method with validation
560
636
  # @param [Object] private_ip_addresses Value to be assigned
561
637
  def private_ip_addresses=(private_ip_addresses)
@@ -584,6 +660,36 @@ module BmcApi
584
660
  @public_ip_addresses = public_ip_addresses
585
661
  end
586
662
 
663
+ # Custom attribute writer method with validation
664
+ # @param [Object] pricing_model Value to be assigned
665
+ def pricing_model=(pricing_model)
666
+ if pricing_model.nil?
667
+ fail ArgumentError, 'pricing_model cannot be nil'
668
+ end
669
+
670
+ @pricing_model = pricing_model
671
+ end
672
+
673
+ # Custom attribute writer method with validation
674
+ # @param [Object] network_configuration Value to be assigned
675
+ def network_configuration=(network_configuration)
676
+ if network_configuration.nil?
677
+ fail ArgumentError, 'network_configuration cannot be nil'
678
+ end
679
+
680
+ @network_configuration = network_configuration
681
+ end
682
+
683
+ # Custom attribute writer method with validation
684
+ # @param [Object] storage_configuration Value to be assigned
685
+ def storage_configuration=(storage_configuration)
686
+ if storage_configuration.nil?
687
+ fail ArgumentError, 'storage_configuration cannot be nil'
688
+ end
689
+
690
+ @storage_configuration = storage_configuration
691
+ end
692
+
587
693
  # Checks equality by comparing each attribute.
588
694
  # @param [Object] Object to be compared
589
695
  def ==(o)
@@ -654,61 +760,6 @@ module BmcApi
654
760
  new(transformed_hash)
655
761
  end
656
762
 
657
- # Deserializes the data based on type
658
- # @param string type Data type
659
- # @param string value Value to be deserialized
660
- # @return [Object] Deserialized data
661
- def self._deserialize(type, value)
662
- case type.to_sym
663
- when :Time
664
- Time.parse(value)
665
- when :Date
666
- Date.parse(value)
667
- when :String
668
- value.to_s
669
- when :Integer
670
- value.to_i
671
- when :Float
672
- value.to_f
673
- when :Boolean
674
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
675
- true
676
- else
677
- false
678
- end
679
- when :Object
680
- # generic object (usually a Hash), return directly
681
- value
682
- when /\AArray<(?<inner_type>.+)>\z/
683
- inner_type = Regexp.last_match[:inner_type]
684
- value.map { |v| _deserialize(inner_type, v) }
685
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
686
- k_type = Regexp.last_match[:k_type]
687
- v_type = Regexp.last_match[:v_type]
688
- {}.tap do |hash|
689
- value.each do |k, v|
690
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
691
- end
692
- end
693
- else # model
694
- # models (e.g. Pet) or oneOf
695
- klass = BmcApi.const_get(type)
696
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
697
- end
698
- end
699
-
700
- # Returns the string representation of the object
701
- # @return [String] String presentation of the object
702
- def to_s
703
- to_hash.to_s
704
- end
705
-
706
- # to_body is an alias to to_hash (backward compatibility)
707
- # @return [Hash] Returns the object in the form of hash
708
- def to_body
709
- to_hash
710
- end
711
-
712
763
  # Returns the object in the form of hash
713
764
  # @return [Hash] Returns the object in the form of hash
714
765
  def to_hash
@@ -725,24 +776,6 @@ module BmcApi
725
776
  hash
726
777
  end
727
778
 
728
- # Outputs non-array value in the form of hash
729
- # For object, use to_hash. Otherwise, just return the value
730
- # @param [Object] value Any valid value
731
- # @return [Hash] Returns the value in the form of hash
732
- def _to_hash(value)
733
- if value.is_a?(Array)
734
- value.compact.map { |v| _to_hash(v) }
735
- elsif value.is_a?(Hash)
736
- {}.tap do |hash|
737
- value.each { |k, v| hash[k] = _to_hash(v) }
738
- end
739
- elsif value.respond_to? :to_hash
740
- value.to_hash
741
- else
742
- value
743
- end
744
- end
745
-
746
779
  end
747
780
 
748
781
  end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.1
7
7
  Contact: support@phoenixnap.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 7.2.0
9
+ Generator version: 7.20.0
10
10
 
11
11
  =end
12
12
 
@@ -15,20 +15,20 @@ require 'time'
15
15
 
16
16
  module BmcApi
17
17
  # Provision bare metal server.
18
- class ServerCreate
18
+ class ServerCreate < ApiModelBase
19
19
  # Hostname of server.
20
20
  attr_accessor :hostname
21
21
 
22
22
  # Description of server.
23
23
  attr_accessor :description
24
24
 
25
- # The server’s OS ID used when the server was created. Currently this field should be set to either `ubuntu/bionic`, `ubuntu/focal`, `ubuntu/jammy`, `ubuntu/jammy+pytorch`, `ubuntu/noble`, `centos/centos7`, `centos/centos8`, `windows/srv2019std`, `windows/srv2019dc`, `windows/srv2022std`, `windows/srv2022dc`, `windows/srv2025std`, `windows/srv2025dc`, `esxi/esxi70`, `esxi/esxi80`, `almalinux/almalinux8`, `rockylinux/rockylinux8`, `almalinux/almalinux9`, `rockylinux/rockylinux9`, `virtuozzo/virtuozzo7`, `oraclelinux/oraclelinux9`, `debian/bullseye`, `debian/bookworm`, `proxmox/bullseye`, `proxmox/proxmox8`, `netris/controller`, `netris/softgate_1g`, `netris/softgate_10g` or `netris/softgate_25g`.
25
+ # The server’s OS ID used when the server was created. Currently this field should be set to either `ubuntu/bionic`, `ubuntu/focal`, `ubuntu/jammy`, `ubuntu/jammy+pytorch`, `ubuntu/noble`, `centos/centos7`, `centos/centos8`, `windows/srv2019std`, `windows/srv2019dc`, `windows/srv2022std`, `windows/srv2022dc`, `windows/srv2025std`, `windows/srv2025dc`, `esxi/esxi70`, `esxi/esxi80`, `almalinux/almalinux8`, `rockylinux/rockylinux8`, `almalinux/almalinux9`, `rockylinux/rockylinux9`, `virtuozzo/virtuozzo7`, `oraclelinux/oraclelinux9`, `debian/bullseye`, `debian/bookworm`, `debian/trixie`, `proxmox/bullseye`, `proxmox/proxmox8`, `proxmox/proxmox9`, `netris/controller`, `netris/softgate_1g`, `netris/softgate_10g` or `netris/softgate_25g`.
26
26
  attr_accessor :os
27
27
 
28
- # Server type ID. Cannot be changed once a server is created. Currently this field should be set to either `s0.d1.small`, `s0.d1.medium`, `s1.c1.small`, `s1.c1.medium`, `s1.c2.medium`, `s1.c2.large`, `s1.e1.small`, `s1.e1.medium`, `s1.e1.large`, `s2.c1.small`, `s2.c1.medium`, `s2.c1.large`, `s2.c2.small`, `s2.c2.medium`, `s2.c2.large`, `d1.c1.small`, `d1.c2.small`, `d1.c3.small`, `d1.c4.small`, `d1.c1.medium`, `d1.c2.medium`, `d1.c3.medium`, `d1.c4.medium`, `d1.c1.large`, `d1.c2.large`, `d1.c3.large`, `d1.c4.large`, `d1.m1.medium`, `d1.m2.medium`, `d1.m3.medium`, `d1.m4.medium`, `d2.c1.medium`, `d2.c2.medium`, `d2.c3.medium`, `d2.c4.medium`, `d2.c5.medium`, `d2.c1.large`, `d2.c2.large`, `d2.c3.large`, `d2.c4.large`, `d2.c5.large`, `d2.m1.xlarge`, `d2.m2.xxlarge`, `d2.m3.xlarge`, `d2.m4.xlarge`, `d2.m5.xlarge`, `d2.c4.db1.pliops1`, `d3.m4.xlarge`, `d3.m5.xlarge`, `d3.m6.xlarge`, `a1.c5.large`, `a1.c5.xlarge`, `d3.s5.xlarge`, `d3.m4.xxlarge`, `d3.m5.xxlarge`, `d3.m6.xxlarge`, `s3.c3.medium`, `s3.c3.large`, `d3.c4.medium`, `d3.c5.medium`, `d3.c6.medium`, `d3.c1.large`, `d3.c2.large`, `d3.c3.large`, `d3.m1.xlarge`, `d3.m2.xlarge`, `d3.m3.xlarge`, `d3.g2.c1.xlarge`, `d3.g2.c2.xlarge`, `d3.g2.c3.xlarge`, s4.x6.c6.large or s4.x6.m6.xlarge.
28
+ # Server type ID. Cannot be changed once a server is created. Currently this field should be set to either `s0.d1.small`, `s0.d1.medium`, `s1.c1.small`, `s1.c1.medium`, `s1.c2.medium`, `s1.c2.large`, `s1.e1.small`, `s1.e1.medium`, `s1.e1.large`, `s2.c1.small`, `s2.c1.medium`, `s2.c1.large`, `s2.c2.small`, `s2.c2.medium`, `s2.c2.large`, `d1.c4.small`, `d1.c4.medium`, `d1.c4.large`, `d1.m4.medium`, `d2.c1.medium`, `d2.c2.medium`, `d2.c3.medium`, `d2.c4.medium`, `d2.c5.medium`, `d2.c1.large`, `d2.c2.large`, `d2.c3.large`, `d2.c4.large`, `d2.c5.large`, `d2.m1.xlarge`, `d2.m2.xxlarge`, `d2.m3.xlarge`, `d2.m4.xlarge`, `d2.m5.xlarge`, `d2.c4.db1.pliops1`, `d3.m4.xlarge`, `d3.m5.xlarge`, `d3.m6.xlarge`, `a1.c5.large`, `a1.c5.xlarge`, `d3.s5.xlarge`, `d3.m4.xxlarge`, `d3.m5.xxlarge`, `d3.m6.xxlarge`, `s3.c3.medium`, `s3.c3.large`, `d3.c4.medium`, `d3.c5.medium`, `d3.c6.medium`, `d3.c1.large`, `d3.c2.large`, `d3.c3.large`, `d3.m1.xlarge`, `d3.m2.xlarge`, `d3.m3.xlarge`, `d3.g2.c1.xlarge`, `d3.g2.c2.xlarge`, `d3.g2.c3.xlarge`,`d3.g3.c2.medium`, `s4.x6.c6.large`, `s4.x6.m6.xlarge`, `s5.x6.c3.medium`, `s5.x6.c3.large`, `s5.x6.c8.medium`, `s5.x6.c9.medium`, `s5.x6.c8.large`, `s5.x6.c9.large`, `s5.x6.m8.xlarge`, `s5.x6.m9.xlarge`, `s4.c3.medium`, `s4.c6.medium`, `s4.c6.large`, `s4.c6.xlarge`, `s4.s2.large`, `a2.c9.large` or `a2.c9.xlarge`.
29
29
  attr_accessor :type
30
30
 
31
- # Server location ID. Cannot be changed once a server is created. Currently this field should be set to `PHX`, `ASH`, `SGP`, `NLD`, `CHI`, `SEA` or `AUS`.
31
+ # Server location ID. Cannot be changed once a server is created. Currently this field should be set to `PHX`, `ASH`, `SGP`, `NLD`, `CHI` or `SEA`.
32
32
  attr_accessor :location
33
33
 
34
34
  # Whether or not to install SSH keys marked as default in addition to any SSH keys specified in this request.
@@ -79,9 +79,14 @@ module BmcApi
79
79
  }
80
80
  end
81
81
 
82
+ # Returns attribute mapping this model knows about
83
+ def self.acceptable_attribute_map
84
+ attribute_map
85
+ end
86
+
82
87
  # Returns all the JSON keys this model knows about
83
88
  def self.acceptable_attributes
84
- attribute_map.values
89
+ acceptable_attribute_map.values
85
90
  end
86
91
 
87
92
  # Attribute type mapping.
@@ -119,9 +124,10 @@ module BmcApi
119
124
  end
120
125
 
121
126
  # check to see if the attribute exists and convert string to symbol for hash key
127
+ acceptable_attribute_map = self.class.acceptable_attribute_map
122
128
  attributes = attributes.each_with_object({}) { |(k, v), h|
123
- if (!self.class.attribute_map.key?(k.to_sym))
124
- fail ArgumentError, "`#{k}` is not a valid attribute in `BmcApi::ServerCreate`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
129
+ if (!acceptable_attribute_map.key?(k.to_sym))
130
+ fail ArgumentError, "`#{k}` is not a valid attribute in `BmcApi::ServerCreate`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
125
131
  end
126
132
  h[k.to_sym] = v
127
133
  }
@@ -221,7 +227,7 @@ module BmcApi
221
227
  end
222
228
 
223
229
  if @hostname.to_s.length < 1
224
- invalid_properties.push('invalid value for "hostname", the character length must be great than or equal to 1.')
230
+ invalid_properties.push('invalid value for "hostname", the character length must be greater than or equal to 1.')
225
231
  end
226
232
 
227
233
  pattern = Regexp.new(/^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$/)
@@ -275,7 +281,7 @@ module BmcApi
275
281
  end
276
282
 
277
283
  if hostname.to_s.length < 1
278
- fail ArgumentError, 'invalid value for "hostname", the character length must be great than or equal to 1.'
284
+ fail ArgumentError, 'invalid value for "hostname", the character length must be greater than or equal to 1.'
279
285
  end
280
286
 
281
287
  pattern = Regexp.new(/^(?=.*[a-zA-Z])([a-zA-Z0-9().-])+$/)
@@ -300,6 +306,36 @@ module BmcApi
300
306
  @description = description
301
307
  end
302
308
 
309
+ # Custom attribute writer method with validation
310
+ # @param [Object] os Value to be assigned
311
+ def os=(os)
312
+ if os.nil?
313
+ fail ArgumentError, 'os cannot be nil'
314
+ end
315
+
316
+ @os = os
317
+ end
318
+
319
+ # Custom attribute writer method with validation
320
+ # @param [Object] type Value to be assigned
321
+ def type=(type)
322
+ if type.nil?
323
+ fail ArgumentError, 'type cannot be nil'
324
+ end
325
+
326
+ @type = type
327
+ end
328
+
329
+ # Custom attribute writer method with validation
330
+ # @param [Object] location Value to be assigned
331
+ def location=(location)
332
+ if location.nil?
333
+ fail ArgumentError, 'location cannot be nil'
334
+ end
335
+
336
+ @location = location
337
+ end
338
+
303
339
  # Checks equality by comparing each attribute.
304
340
  # @param [Object] Object to be compared
305
341
  def ==(o)
@@ -357,61 +393,6 @@ module BmcApi
357
393
  new(transformed_hash)
358
394
  end
359
395
 
360
- # Deserializes the data based on type
361
- # @param string type Data type
362
- # @param string value Value to be deserialized
363
- # @return [Object] Deserialized data
364
- def self._deserialize(type, value)
365
- case type.to_sym
366
- when :Time
367
- Time.parse(value)
368
- when :Date
369
- Date.parse(value)
370
- when :String
371
- value.to_s
372
- when :Integer
373
- value.to_i
374
- when :Float
375
- value.to_f
376
- when :Boolean
377
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
378
- true
379
- else
380
- false
381
- end
382
- when :Object
383
- # generic object (usually a Hash), return directly
384
- value
385
- when /\AArray<(?<inner_type>.+)>\z/
386
- inner_type = Regexp.last_match[:inner_type]
387
- value.map { |v| _deserialize(inner_type, v) }
388
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
389
- k_type = Regexp.last_match[:k_type]
390
- v_type = Regexp.last_match[:v_type]
391
- {}.tap do |hash|
392
- value.each do |k, v|
393
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
394
- end
395
- end
396
- else # model
397
- # models (e.g. Pet) or oneOf
398
- klass = BmcApi.const_get(type)
399
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
400
- end
401
- end
402
-
403
- # Returns the string representation of the object
404
- # @return [String] String presentation of the object
405
- def to_s
406
- to_hash.to_s
407
- end
408
-
409
- # to_body is an alias to to_hash (backward compatibility)
410
- # @return [Hash] Returns the object in the form of hash
411
- def to_body
412
- to_hash
413
- end
414
-
415
396
  # Returns the object in the form of hash
416
397
  # @return [Hash] Returns the object in the form of hash
417
398
  def to_hash
@@ -428,24 +409,6 @@ module BmcApi
428
409
  hash
429
410
  end
430
411
 
431
- # Outputs non-array value in the form of hash
432
- # For object, use to_hash. Otherwise, just return the value
433
- # @param [Object] value Any valid value
434
- # @return [Hash] Returns the value in the form of hash
435
- def _to_hash(value)
436
- if value.is_a?(Array)
437
- value.compact.map { |v| _to_hash(v) }
438
- elsif value.is_a?(Hash)
439
- {}.tap do |hash|
440
- value.each { |k, v| hash[k] = _to_hash(v) }
441
- end
442
- elsif value.respond_to? :to_hash
443
- value.to_hash
444
- else
445
- value
446
- end
447
- end
448
-
449
412
  end
450
413
 
451
414
  end
@@ -6,7 +6,7 @@
6
6
  The version of the OpenAPI document: 0.1
7
7
  Contact: support@phoenixnap.com
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 7.2.0
9
+ Generator version: 7.20.0
10
10
 
11
11
  =end
12
12
 
@@ -15,7 +15,7 @@ require 'time'
15
15
 
16
16
  module BmcApi
17
17
  # IP block assigned to server
18
- class ServerIpBlock
18
+ class ServerIpBlock < ApiModelBase
19
19
  # The IP block's ID.
20
20
  attr_accessor :id
21
21
 
@@ -30,9 +30,14 @@ module BmcApi
30
30
  }
31
31
  end
32
32
 
33
+ # Returns attribute mapping this model knows about
34
+ def self.acceptable_attribute_map
35
+ attribute_map
36
+ end
37
+
33
38
  # Returns all the JSON keys this model knows about
34
39
  def self.acceptable_attributes
35
- attribute_map.values
40
+ acceptable_attribute_map.values
36
41
  end
37
42
 
38
43
  # Attribute type mapping.
@@ -57,9 +62,10 @@ module BmcApi
57
62
  end
58
63
 
59
64
  # check to see if the attribute exists and convert string to symbol for hash key
65
+ acceptable_attribute_map = self.class.acceptable_attribute_map
60
66
  attributes = attributes.each_with_object({}) { |(k, v), h|
61
- if (!self.class.attribute_map.key?(k.to_sym))
62
- fail ArgumentError, "`#{k}` is not a valid attribute in `BmcApi::ServerIpBlock`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
67
+ if (!acceptable_attribute_map.key?(k.to_sym))
68
+ fail ArgumentError, "`#{k}` is not a valid attribute in `BmcApi::ServerIpBlock`. Please check the name to make sure it's valid. List of attributes: " + acceptable_attribute_map.keys.inspect
63
69
  end
64
70
  h[k.to_sym] = v
65
71
  }
@@ -95,6 +101,16 @@ module BmcApi
95
101
  true
96
102
  end
97
103
 
104
+ # Custom attribute writer method with validation
105
+ # @param [Object] id Value to be assigned
106
+ def id=(id)
107
+ if id.nil?
108
+ fail ArgumentError, 'id cannot be nil'
109
+ end
110
+
111
+ @id = id
112
+ end
113
+
98
114
  # Checks equality by comparing each attribute.
99
115
  # @param [Object] Object to be compared
100
116
  def ==(o)
@@ -139,61 +155,6 @@ module BmcApi
139
155
  new(transformed_hash)
140
156
  end
141
157
 
142
- # Deserializes the data based on type
143
- # @param string type Data type
144
- # @param string value Value to be deserialized
145
- # @return [Object] Deserialized data
146
- def self._deserialize(type, value)
147
- case type.to_sym
148
- when :Time
149
- Time.parse(value)
150
- when :Date
151
- Date.parse(value)
152
- when :String
153
- value.to_s
154
- when :Integer
155
- value.to_i
156
- when :Float
157
- value.to_f
158
- when :Boolean
159
- if value.to_s =~ /\A(true|t|yes|y|1)\z/i
160
- true
161
- else
162
- false
163
- end
164
- when :Object
165
- # generic object (usually a Hash), return directly
166
- value
167
- when /\AArray<(?<inner_type>.+)>\z/
168
- inner_type = Regexp.last_match[:inner_type]
169
- value.map { |v| _deserialize(inner_type, v) }
170
- when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
171
- k_type = Regexp.last_match[:k_type]
172
- v_type = Regexp.last_match[:v_type]
173
- {}.tap do |hash|
174
- value.each do |k, v|
175
- hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
176
- end
177
- end
178
- else # model
179
- # models (e.g. Pet) or oneOf
180
- klass = BmcApi.const_get(type)
181
- klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
182
- end
183
- end
184
-
185
- # Returns the string representation of the object
186
- # @return [String] String presentation of the object
187
- def to_s
188
- to_hash.to_s
189
- end
190
-
191
- # to_body is an alias to to_hash (backward compatibility)
192
- # @return [Hash] Returns the object in the form of hash
193
- def to_body
194
- to_hash
195
- end
196
-
197
158
  # Returns the object in the form of hash
198
159
  # @return [Hash] Returns the object in the form of hash
199
160
  def to_hash
@@ -210,24 +171,6 @@ module BmcApi
210
171
  hash
211
172
  end
212
173
 
213
- # Outputs non-array value in the form of hash
214
- # For object, use to_hash. Otherwise, just return the value
215
- # @param [Object] value Any valid value
216
- # @return [Hash] Returns the value in the form of hash
217
- def _to_hash(value)
218
- if value.is_a?(Array)
219
- value.compact.map { |v| _to_hash(v) }
220
- elsif value.is_a?(Hash)
221
- {}.tap do |hash|
222
- value.each { |k, v| hash[k] = _to_hash(v) }
223
- end
224
- elsif value.respond_to? :to_hash
225
- value.to_hash
226
- else
227
- value
228
- end
229
- end
230
-
231
174
  end
232
175
 
233
176
  end