ibm_vpc 0.9.0 → 0.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1b070451a498fd6b829656df7fe2c853a028ebd734436ce48a32356817387ee9
4
- data.tar.gz: '08ff3d4a59cee10feadcac64ec4f2226d1d9319ba4ff5a40ea9dd95cd3c09fd2'
3
+ metadata.gz: 8cb3ed1f0836aa77adae565fd4cdd3d9a51d00172fd0e8987ff606459039d276
4
+ data.tar.gz: 473477e94aa11ea542ea268f9927c774cbb5387bd452ef99e0ce6c135f76e00e
5
5
  SHA512:
6
- metadata.gz: ef261c21a7efaf7717871f98bb28f87ed1b91db931086ba2ccfeba203345840503ccdf54666752fea939b9c7dc271cc3a7ffa4b391bc54921a8584a92be879a5
7
- data.tar.gz: ec2f201336f20853652e12d13759e7e0b4767c9ba83ba8ec1265cae737be2aaf8dc3bc5a46d530ed12bda87d82b39daa9c1ed69a5b4fdcfcaf169ebfe616b5d9
6
+ metadata.gz: 18ddc7834140647379aee47b05808dd74f40ba49f2e87c7eea9e31dcbc98c2611a151dc5b1beb6be30aa3181382d26272eb506740fc4d61f47c82a25f6e5aa33
7
+ data.tar.gz: 8a40f28991f9ddfce6b12fb201723b31c6f3979807ac8c3e0c67edf3f7f7035dcce55995e7faedf107f1c2c4c14749282ee653c1b6939428ed25b942b422315b
data/.bumpversion.cfg CHANGED
@@ -1,5 +1,5 @@
1
1
  [bumpversion]
2
- current_version = 0.9.0
2
+ current_version = 0.10.0
3
3
  commit = True
4
4
  message = Update version {current_version} -> {new_version}
5
5
 
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [0.10.0](https://github.com/IBM/vpc-ruby-sdk/compare/0.9.0...0.10.0) (2025-07-16)
2
+
3
+
4
+ ### Features
5
+
6
+ * **release:** Update SDK to support VPC API version 2025-07-15 ([#36](https://github.com/IBM/vpc-ruby-sdk/issues/36)) ([413c3ad](https://github.com/IBM/vpc-ruby-sdk/commit/413c3ad3a55715ced2ca4d7738b38a1a83adceab))
7
+
1
8
  # [0.9.0](https://github.com/IBM/vpc-ruby-sdk/compare/0.8.0...0.9.0) (2025-05-27)
2
9
 
3
10
 
data/Rakefile CHANGED
@@ -48,7 +48,7 @@ end
48
48
 
49
49
  desc "Run tests and generate a code coverage report"
50
50
  task :coverage do
51
- ENV["COVERAGE"] = "true" if ENV["TRAVIS_RUBY_VERSION"] == "2.5.1" || ENV["CI"].nil?
51
+ ENV["COVERAGE"] = "true" if ENV["GITHUB_ACTIONS"] || ENV["CI"].nil?
52
52
  Rake::Task["test"].execute
53
53
  end
54
54
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module IbmVpc
4
- VERSION = "0.9.0"
4
+ VERSION = "0.10.0"
5
5
  end
@@ -33,7 +33,7 @@ module IbmVpc
33
33
  include Concurrent::Async
34
34
  DEFAULT_SERVICE_NAME = "vpc"
35
35
  DEFAULT_SERVICE_URL = "https://us-south.iaas.cloud.ibm.com/v1"
36
- DEFAULT_SERVICE_VERSION = "2025-05-13"
36
+ DEFAULT_SERVICE_VERSION = "2025-07-15"
37
37
  attr_accessor :version
38
38
  attr_accessor :generation
39
39
  ##
@@ -42,7 +42,7 @@ module IbmVpc
42
42
  #
43
43
  # @param args [Hash] The args to initialize with
44
44
  # @option args version [String] The API version, in format `YYYY-MM-DD`. For the API behavior documented here,
45
- # specify any date between `2025-04-08` and `2025-05-22`.
45
+ # specify any date between `2025-06-30` and `2025-07-15`.
46
46
  # @option args service_url [String] The base service URL to use when contacting the service.
47
47
  # The base service_url may differ between IBM Cloud regions.
48
48
  # @option args authenticator [Object] The Authenticator instance to be configured for this service.
@@ -209,7 +209,8 @@ module IbmVpc
209
209
  #
210
210
  # All security groups and network ACLs associated with the VPC are automatically
211
211
  # deleted. All flow log collectors with `auto_delete` set to `true` targeting the
212
- # VPC or any resource in the VPC are automatically deleted.
212
+ # VPC or any resource in the VPC are automatically deleted. All public address
213
+ # ranges attached to the VPC are automatically detached.
213
214
  # @param id [String] The VPC identifier.
214
215
  # @param if_match [String] If present, the request will fail if the specified ETag value does not match the
215
216
  # resource's current ETag value.
@@ -752,9 +753,16 @@ module IbmVpc
752
753
  # retrieved DNS resolution binding, and contains the information necessary to create
753
754
  # the new DNS resolution binding.
754
755
  #
755
- # For this request to succeed, `dns.enable_hub` must be `false` for the VPC
756
- # specified by the identifier in the URL, and the VPC must not already have a DNS
757
- # resolution binding.
756
+ # For this request to succeed:
757
+ # - The VPC specified by the identifier in the URL must not already have a DNS
758
+ # resolution
759
+ # binding
760
+ # - The VPC specified by the identifier in the URL must have `dns.enable_hub` set to
761
+ # `false`
762
+ # - The updated DNS sharing connected topology must not contain more than one
763
+ # endpoint
764
+ # gateway with `allow_dns_resolution_binding` set to `true` targeting the same
765
+ # service.
758
766
  #
759
767
  # See [About DNS sharing for VPE gateways](/docs/vpc?topic=vpc-vpe-dns-sharing) for
760
768
  # more information.
@@ -2526,7 +2534,7 @@ module IbmVpc
2526
2534
  #########################
2527
2535
 
2528
2536
  ##
2529
- # @!method list_images(start: nil, limit: nil, resource_group_id: nil, name: nil, status: nil, visibility: nil, user_data_format: nil, owner_type: nil)
2537
+ # @!method list_images(start: nil, limit: nil, resource_group_id: nil, name: nil, status: nil, visibility: nil, user_data_format: nil, remote_account_id: nil)
2530
2538
  # List images.
2531
2539
  # This request lists images available in the region. An image provides source data
2532
2540
  # for a volume. Images are either system-provided, or created from another source,
@@ -2543,10 +2551,14 @@ module IbmVpc
2543
2551
  # specified value.
2544
2552
  # @param user_data_format [Array[String]] Filters the collection to images with a `user_data_format` property matching one
2545
2553
  # of the specified comma-separated values.
2546
- # @param owner_type [String] Filters the collection to images with an `owner_type` property matching the
2547
- # specified value.
2554
+ # @param remote_account_id [String] Filters the collection to images with a `remote.account.id` property matching the
2555
+ # specified account identifier.
2556
+ #
2557
+ # This parameter also supports the values null and not:null which filter the
2558
+ # collection to resources which have no remote account identifier or any remote
2559
+ # account identifier, respectively.
2548
2560
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
2549
- def list_images(start: nil, limit: nil, resource_group_id: nil, name: nil, status: nil, visibility: nil, user_data_format: nil, owner_type: nil)
2561
+ def list_images(start: nil, limit: nil, resource_group_id: nil, name: nil, status: nil, visibility: nil, user_data_format: nil, remote_account_id: nil)
2550
2562
  raise ArgumentError.new("version must be provided") if version.nil?
2551
2563
 
2552
2564
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -2568,7 +2580,7 @@ module IbmVpc
2568
2580
  "status" => status,
2569
2581
  "visibility" => visibility,
2570
2582
  "user_data_format" => user_data_format,
2571
- "owner_type" => owner_type
2583
+ "remote.account.id" => remote_account_id
2572
2584
  }
2573
2585
 
2574
2586
  method_url = "/images"
@@ -2630,9 +2642,8 @@ module IbmVpc
2630
2642
  # @!method delete_image(id:)
2631
2643
  # Delete an image.
2632
2644
  # This request deletes an image. Any active image export jobs will be completed
2633
- # first. This operation cannot be reversed. An image with an `owner_type` of
2634
- # `provider` is not allowed to be deleted. Additionally, an image cannot be deleted
2635
- # if it:
2645
+ # first. This operation cannot be reversed. An image with `remote.account` set is
2646
+ # not allowed to be deleted. Additionally, an image cannot be deleted if it:
2636
2647
  # - has a `status` of `deleting`
2637
2648
  # - has a `status` of `pending` with a `status_reasons` code of
2638
2649
  # `image_request_in_progress`
@@ -2708,9 +2719,8 @@ module IbmVpc
2708
2719
  # Update an image.
2709
2720
  # This request updates an image with the information in a provided image patch. The
2710
2721
  # image patch object is structured in the same way as a retrieved image and contains
2711
- # only the information to be updated. An image with an `owner_type` of `provider` is
2712
- # not allowed to be updated. An image with a `status` of `deleting` cannot be
2713
- # updated.
2722
+ # only the information to be updated. An image with `remote.account` set is not
2723
+ # allowed to be updated. An image with a `status` of `deleting` cannot be updated.
2714
2724
  # @param id [String] The image identifier.
2715
2725
  # @param image_patch [Hash] The image patch.
2716
2726
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -2749,6 +2759,47 @@ module IbmVpc
2749
2759
  response
2750
2760
  end
2751
2761
 
2762
+ ##
2763
+ # @!method list_image_bare_metal_server_profiles(id:, start: nil, limit: nil)
2764
+ # List bare metal server profiles compatible with an image.
2765
+ # This request lists bare metal server profiles compatible with an image's
2766
+ # `allowed_use.bare_metal_server`, `operating_system.architecture` and
2767
+ # `user_data_format` properties, sorted by ascending `name` property values.
2768
+ # @param id [String] The image identifier.
2769
+ # @param start [String] A server-provided token determining what resource to start the page on.
2770
+ # @param limit [Fixnum] The number of resources to return on a page.
2771
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
2772
+ def list_image_bare_metal_server_profiles(id:, start: nil, limit: nil)
2773
+ raise ArgumentError.new("version must be provided") if version.nil?
2774
+
2775
+ raise ArgumentError.new("generation must be provided") if generation.nil?
2776
+
2777
+ raise ArgumentError.new("id must be provided") if id.nil?
2778
+
2779
+ headers = {
2780
+ }
2781
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_image_bare_metal_server_profiles")
2782
+ headers.merge!(sdk_headers)
2783
+
2784
+ params = {
2785
+ "version" => @version,
2786
+ "generation" => @generation,
2787
+ "start" => start,
2788
+ "limit" => limit
2789
+ }
2790
+
2791
+ method_url = "/images/%s/bare_metal_server_profiles" % [ERB::Util.url_encode(id)]
2792
+
2793
+ response = request(
2794
+ method: "GET",
2795
+ url: method_url,
2796
+ headers: headers,
2797
+ params: params,
2798
+ accept_json: true
2799
+ )
2800
+ response
2801
+ end
2802
+
2752
2803
  ##
2753
2804
  # @!method deprecate_image(id:)
2754
2805
  # Deprecate an image.
@@ -2761,7 +2812,7 @@ module IbmVpc
2761
2812
  # - have `catalog_offering.managed` set to `false`
2762
2813
  # - not have `deprecation_at` set
2763
2814
  #
2764
- # An image with an `owner_type` of `provider` is not allowed to be deprecated.
2815
+ # An image with `remote.account` set is not allowed to be deprecated.
2765
2816
  # @param id [String] The image identifier.
2766
2817
  # @return [nil]
2767
2818
  def deprecate_image(id:)
@@ -2793,6 +2844,47 @@ module IbmVpc
2793
2844
  nil
2794
2845
  end
2795
2846
 
2847
+ ##
2848
+ # @!method list_image_instance_profiles(id:, start: nil, limit: nil)
2849
+ # List instance profiles compatible with an image.
2850
+ # This request lists instance profiles compatible with an image's
2851
+ # `allowed_use.instance`, `operating_system.architecture` and
2852
+ # `user_data_format` properties, sorted by ascending `name` property values.
2853
+ # @param id [String] The image identifier.
2854
+ # @param start [String] A server-provided token determining what resource to start the page on.
2855
+ # @param limit [Fixnum] The number of resources to return on a page.
2856
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
2857
+ def list_image_instance_profiles(id:, start: nil, limit: nil)
2858
+ raise ArgumentError.new("version must be provided") if version.nil?
2859
+
2860
+ raise ArgumentError.new("generation must be provided") if generation.nil?
2861
+
2862
+ raise ArgumentError.new("id must be provided") if id.nil?
2863
+
2864
+ headers = {
2865
+ }
2866
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_image_instance_profiles")
2867
+ headers.merge!(sdk_headers)
2868
+
2869
+ params = {
2870
+ "version" => @version,
2871
+ "generation" => @generation,
2872
+ "start" => start,
2873
+ "limit" => limit
2874
+ }
2875
+
2876
+ method_url = "/images/%s/instance_profiles" % [ERB::Util.url_encode(id)]
2877
+
2878
+ response = request(
2879
+ method: "GET",
2880
+ url: method_url,
2881
+ headers: headers,
2882
+ params: params,
2883
+ accept_json: true
2884
+ )
2885
+ response
2886
+ end
2887
+
2796
2888
  ##
2797
2889
  # @!method obsolete_image(id:)
2798
2890
  # Obsolete an image.
@@ -2805,7 +2897,7 @@ module IbmVpc
2805
2897
  # - not have `deprecation_at` set in the future
2806
2898
  # - not have `obsolescence_at` set
2807
2899
  #
2808
- # An image with an `owner_type` of `provider` is not allowed to be obsoleted.
2900
+ # An image with `remote.account` set is not allowed to be obsoleted.
2809
2901
  # @param id [String] The image identifier.
2810
2902
  # @return [nil]
2811
2903
  def obsolete_image(id:)
@@ -3718,6 +3810,10 @@ module IbmVpc
3718
3810
  # prototype object is structured in the same way as a retrieved instance, and
3719
3811
  # contains the information necessary to provision the new instance. The instance is
3720
3812
  # automatically started.
3813
+ #
3814
+ # For this request to succeed, the properties in the request must adhere to the
3815
+ # source's
3816
+ # `allowed_use` property.
3721
3817
  # @param instance_prototype [InstancePrototype] The instance prototype object.
3722
3818
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
3723
3819
  def create_instance(instance_prototype:)
@@ -3839,6 +3935,10 @@ module IbmVpc
3839
3935
  # This request updates an instance with the information in a provided instance
3840
3936
  # patch. The instance patch object is structured in the same way as a retrieved
3841
3937
  # instance and contains only the information to be updated.
3938
+ #
3939
+ # For this request to succeed, the properties in the request must adhere to the
3940
+ # `allowed_use` property in the volume referenced by
3941
+ # `boot_volume_attachment.volume`.
3842
3942
  # @param id [String] The virtual server instance identifier.
3843
3943
  # @param instance_patch [Hash] The instance patch.
3844
3944
  # @param if_match [String] If present, the request will fail if the specified ETag value does not match the
@@ -4019,8 +4119,7 @@ module IbmVpc
4019
4119
  # @param cluster_network_interface [InstanceClusterNetworkAttachmentPrototypeClusterNetworkInterface] A cluster network interface for the instance cluster network attachment. This can
4020
4120
  # be
4021
4121
  # specified using an existing cluster network interface that does not already have a
4022
- # `target`,
4023
- # or a prototype object for a new cluster network interface.
4122
+ # `target`, or a prototype object for a new cluster network interface.
4024
4123
  #
4025
4124
  # This instance must reside in the same VPC as the specified cluster network
4026
4125
  # interface. The
@@ -7713,6 +7812,9 @@ module IbmVpc
7713
7812
  # prototype object is structured in the same way as a retrieved bare metal server,
7714
7813
  # and contains the information necessary to provision the new bare metal server. The
7715
7814
  # bare metal server is automatically started.
7815
+ #
7816
+ # For this request to succeed, the properties in the request must adhere to the
7817
+ # source image's `allowed_use` property.
7716
7818
  # @param bare_metal_server_prototype [BareMetalServerPrototype] The bare metal server prototype object.
7717
7819
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
7718
7820
  def create_bare_metal_server(bare_metal_server_prototype:)
@@ -8728,6 +8830,9 @@ module IbmVpc
8728
8830
  # This request updates a bare metal server with the information in a provided patch.
8729
8831
  # The bare metal server patch object is structured in the same way as a retrieved
8730
8832
  # bare metal server and contains only the information to be updated.
8833
+ #
8834
+ # For this request to succeed, the properties in the request must adhere to the
8835
+ # `allowed_use` property of the disk referenced in the server's `boot_target`.
8731
8836
  # @param id [String] The bare metal server identifier.
8732
8837
  # @param bare_metal_server_patch [Hash] The bare metal server patch.
8733
8838
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -8852,6 +8957,9 @@ module IbmVpc
8852
8957
  # This request reinitializes a bare metal server with the specified image and SSH
8853
8958
  # keys. The server must be stopped. Upon successful reinitiatilization, the bare
8854
8959
  # metal server will be started automatically.
8960
+ #
8961
+ # For this request to succeed, the properties of the server which would result from
8962
+ # the reinitialization must adhere to the specified image's `allowed_use` property.
8855
8963
  # @param id [String] The bare metal server identifier.
8856
8964
  # @param image [ImageIdentity] The image to be used when provisioning the bare metal server.
8857
8965
  # @param keys [Array[KeyIdentity]] The public SSH keys to install on the bare metal server. Keys will be made
@@ -9329,6 +9437,49 @@ module IbmVpc
9329
9437
  )
9330
9438
  response
9331
9439
  end
9440
+
9441
+ ##
9442
+ # @!method list_volume_instance_profiles(id:, start: nil, limit: nil)
9443
+ # List instance profiles compatible with a volume.
9444
+ # This request lists instance profiles compatible with a volume's
9445
+ # `allowed_use.instance`, `operating_system.architecture` and
9446
+ # `operating_system.user_data_format` properties, sorted by ascending `name`
9447
+ # property values. The specified volume must be bootable (have an `operating_system`
9448
+ # property).
9449
+ # @param id [String] The volume identifier.
9450
+ # @param start [String] A server-provided token determining what resource to start the page on.
9451
+ # @param limit [Fixnum] The number of resources to return on a page.
9452
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
9453
+ def list_volume_instance_profiles(id:, start: nil, limit: nil)
9454
+ raise ArgumentError.new("version must be provided") if version.nil?
9455
+
9456
+ raise ArgumentError.new("generation must be provided") if generation.nil?
9457
+
9458
+ raise ArgumentError.new("id must be provided") if id.nil?
9459
+
9460
+ headers = {
9461
+ }
9462
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_volume_instance_profiles")
9463
+ headers.merge!(sdk_headers)
9464
+
9465
+ params = {
9466
+ "version" => @version,
9467
+ "generation" => @generation,
9468
+ "start" => start,
9469
+ "limit" => limit
9470
+ }
9471
+
9472
+ method_url = "/volumes/%s/instance_profiles" % [ERB::Util.url_encode(id)]
9473
+
9474
+ response = request(
9475
+ method: "GET",
9476
+ url: method_url,
9477
+ headers: headers,
9478
+ params: params,
9479
+ accept_json: true
9480
+ )
9481
+ response
9482
+ end
9332
9483
  #########################
9333
9484
  # Snapshots
9334
9485
  #########################
@@ -10008,6 +10159,48 @@ module IbmVpc
10008
10159
  )
10009
10160
  response
10010
10161
  end
10162
+
10163
+ ##
10164
+ # @!method list_snapshot_instance_profiles(id:, start: nil, limit: nil)
10165
+ # List instance profiles compatible with a snapshot.
10166
+ # This request lists instance profiles compatible with a snapshot's
10167
+ # `allowed_use.instance`, `operating_system.architecture` and
10168
+ # `operating_system.user_data_format` properties, sorted by ascending `name`
10169
+ # property values. The specified snapshot must be bootable.
10170
+ # @param id [String] The snapshot identifier.
10171
+ # @param start [String] A server-provided token determining what resource to start the page on.
10172
+ # @param limit [Fixnum] The number of resources to return on a page.
10173
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
10174
+ def list_snapshot_instance_profiles(id:, start: nil, limit: nil)
10175
+ raise ArgumentError.new("version must be provided") if version.nil?
10176
+
10177
+ raise ArgumentError.new("generation must be provided") if generation.nil?
10178
+
10179
+ raise ArgumentError.new("id must be provided") if id.nil?
10180
+
10181
+ headers = {
10182
+ }
10183
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_snapshot_instance_profiles")
10184
+ headers.merge!(sdk_headers)
10185
+
10186
+ params = {
10187
+ "version" => @version,
10188
+ "generation" => @generation,
10189
+ "start" => start,
10190
+ "limit" => limit
10191
+ }
10192
+
10193
+ method_url = "/snapshots/%s/instance_profiles" % [ERB::Util.url_encode(id)]
10194
+
10195
+ response = request(
10196
+ method: "GET",
10197
+ url: method_url,
10198
+ headers: headers,
10199
+ params: params,
10200
+ accept_json: true
10201
+ )
10202
+ response
10203
+ end
10011
10204
  #########################
10012
10205
  # Shares
10013
10206
  #########################
@@ -13892,6 +14085,224 @@ module IbmVpc
13892
14085
  response
13893
14086
  end
13894
14087
  #########################
14088
+ # Public address ranges
14089
+ #########################
14090
+
14091
+ ##
14092
+ # @!method list_public_address_ranges(start: nil, limit: nil, resource_group_id: nil)
14093
+ # List public address ranges.
14094
+ # This request lists [public address
14095
+ # ranges](https://cloud.ibm.com/docs/vpc?topic=vpc-about-par) in the region. A
14096
+ # public address range is a contiguous block of public IP addresses that can be
14097
+ # bound to a `target` that specifies a `vpc` and a `zone`. Incoming traffic for
14098
+ # these IP addresses will be routed according to the VPC's ingress routing table.
14099
+ # @param start [String] A server-provided token determining what resource to start the page on.
14100
+ # @param limit [Fixnum] The number of resources to return on a page.
14101
+ # @param resource_group_id [String] Filters the collection to resources with a `resource_group.id` property matching
14102
+ # the specified identifier.
14103
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
14104
+ def list_public_address_ranges(start: nil, limit: nil, resource_group_id: nil)
14105
+ raise ArgumentError.new("version must be provided") if version.nil?
14106
+
14107
+ raise ArgumentError.new("generation must be provided") if generation.nil?
14108
+
14109
+ headers = {
14110
+ }
14111
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_public_address_ranges")
14112
+ headers.merge!(sdk_headers)
14113
+
14114
+ params = {
14115
+ "version" => @version,
14116
+ "generation" => @generation,
14117
+ "start" => start,
14118
+ "limit" => limit,
14119
+ "resource_group.id" => resource_group_id
14120
+ }
14121
+
14122
+ method_url = "/public_address_ranges"
14123
+
14124
+ response = request(
14125
+ method: "GET",
14126
+ url: method_url,
14127
+ headers: headers,
14128
+ params: params,
14129
+ accept_json: true
14130
+ )
14131
+ response
14132
+ end
14133
+
14134
+ ##
14135
+ # @!method create_public_address_range(ipv4_address_count:, name: nil, resource_group: nil, target: nil)
14136
+ # Create a public address range.
14137
+ # This request creates a new public address range from a public address range
14138
+ # prototype object. The prototype object is structured in the same way as a
14139
+ # retrieved public address range, and contains the information necessary to create
14140
+ # the new public address range.
14141
+ # @param ipv4_address_count [Fixnum] The total number of public IPv4 addresses required. Must be a power of 2.
14142
+ # @param name [String] The name for this public address range. The name must not be used by another
14143
+ # public address range in the region. If unspecified, the name will be a hyphenated
14144
+ # list of randomly-selected words.
14145
+ # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
14146
+ # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) will be used.
14147
+ # @param target [PublicAddressRangeTargetPrototype] The target to bind this public address range to. If unspecified, the public
14148
+ # address
14149
+ # range will not be bound to a target at creation.
14150
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
14151
+ def create_public_address_range(ipv4_address_count:, name: nil, resource_group: nil, target: nil)
14152
+ raise ArgumentError.new("version must be provided") if version.nil?
14153
+
14154
+ raise ArgumentError.new("generation must be provided") if generation.nil?
14155
+
14156
+ raise ArgumentError.new("ipv4_address_count must be provided") if ipv4_address_count.nil?
14157
+
14158
+ headers = {
14159
+ }
14160
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "create_public_address_range")
14161
+ headers.merge!(sdk_headers)
14162
+
14163
+ params = {
14164
+ "version" => @version,
14165
+ "generation" => @generation
14166
+ }
14167
+
14168
+ data = {
14169
+ "ipv4_address_count" => ipv4_address_count,
14170
+ "name" => name,
14171
+ "resource_group" => resource_group,
14172
+ "target" => target
14173
+ }
14174
+
14175
+ method_url = "/public_address_ranges"
14176
+
14177
+ response = request(
14178
+ method: "POST",
14179
+ url: method_url,
14180
+ headers: headers,
14181
+ params: params,
14182
+ json: data,
14183
+ accept_json: true
14184
+ )
14185
+ response
14186
+ end
14187
+
14188
+ ##
14189
+ # @!method delete_public_address_range(id:)
14190
+ # Delete a public address range.
14191
+ # This request deletes a public address range. If the public address range is bound
14192
+ # to a
14193
+ # `target`, it will be unbound. This operation cannot be reversed.
14194
+ # @param id [String] The public address range identifier.
14195
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
14196
+ def delete_public_address_range(id:)
14197
+ raise ArgumentError.new("version must be provided") if version.nil?
14198
+
14199
+ raise ArgumentError.new("generation must be provided") if generation.nil?
14200
+
14201
+ raise ArgumentError.new("id must be provided") if id.nil?
14202
+
14203
+ headers = {
14204
+ }
14205
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "delete_public_address_range")
14206
+ headers.merge!(sdk_headers)
14207
+
14208
+ params = {
14209
+ "version" => @version,
14210
+ "generation" => @generation
14211
+ }
14212
+
14213
+ method_url = "/public_address_ranges/%s" % [ERB::Util.url_encode(id)]
14214
+
14215
+ response = request(
14216
+ method: "DELETE",
14217
+ url: method_url,
14218
+ headers: headers,
14219
+ params: params,
14220
+ accept_json: true
14221
+ )
14222
+ response
14223
+ end
14224
+
14225
+ ##
14226
+ # @!method get_public_address_range(id:)
14227
+ # Retrieve a public address range.
14228
+ # This request retrieves a single public address range specified by the identifier
14229
+ # in the URL.
14230
+ # @param id [String] The public address range identifier.
14231
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
14232
+ def get_public_address_range(id:)
14233
+ raise ArgumentError.new("version must be provided") if version.nil?
14234
+
14235
+ raise ArgumentError.new("generation must be provided") if generation.nil?
14236
+
14237
+ raise ArgumentError.new("id must be provided") if id.nil?
14238
+
14239
+ headers = {
14240
+ }
14241
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "get_public_address_range")
14242
+ headers.merge!(sdk_headers)
14243
+
14244
+ params = {
14245
+ "version" => @version,
14246
+ "generation" => @generation
14247
+ }
14248
+
14249
+ method_url = "/public_address_ranges/%s" % [ERB::Util.url_encode(id)]
14250
+
14251
+ response = request(
14252
+ method: "GET",
14253
+ url: method_url,
14254
+ headers: headers,
14255
+ params: params,
14256
+ accept_json: true
14257
+ )
14258
+ response
14259
+ end
14260
+
14261
+ ##
14262
+ # @!method update_public_address_range(id:, public_address_range_patch:)
14263
+ # Update a public address range.
14264
+ # This request updates a public address range with the information in a provided
14265
+ # public address range patch. The public address range patch object is structured in
14266
+ # the same way as a retrieved public address range and contains only the information
14267
+ # to be updated.
14268
+ # @param id [String] The public address range identifier.
14269
+ # @param public_address_range_patch [Hash] The public address range patch.
14270
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
14271
+ def update_public_address_range(id:, public_address_range_patch:)
14272
+ raise ArgumentError.new("version must be provided") if version.nil?
14273
+
14274
+ raise ArgumentError.new("generation must be provided") if generation.nil?
14275
+
14276
+ raise ArgumentError.new("id must be provided") if id.nil?
14277
+
14278
+ raise ArgumentError.new("public_address_range_patch must be provided") if public_address_range_patch.nil?
14279
+
14280
+ headers = {
14281
+ }
14282
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "update_public_address_range")
14283
+ headers.merge!(sdk_headers)
14284
+
14285
+ params = {
14286
+ "version" => @version,
14287
+ "generation" => @generation
14288
+ }
14289
+
14290
+ data = public_address_range_patch
14291
+ headers["Content-Type"] = "application/merge-patch+json"
14292
+
14293
+ method_url = "/public_address_ranges/%s" % [ERB::Util.url_encode(id)]
14294
+
14295
+ response = request(
14296
+ method: "PATCH",
14297
+ url: method_url,
14298
+ headers: headers,
14299
+ params: params,
14300
+ data: data,
14301
+ accept_json: true
14302
+ )
14303
+ response
14304
+ end
14305
+ #########################
13895
14306
  # Network ACLs
13896
14307
  #########################
13897
14308
 
@@ -18624,6 +19035,10 @@ module IbmVpc
18624
19035
  # List endpoint gateways.
18625
19036
  # This request lists endpoint gateways in the region. An endpoint gateway maps one
18626
19037
  # or more reserved IPs in a VPC to a target outside the VPC.
19038
+ #
19039
+ # The endpoint gateways will be sorted by their `created_at` property values, with
19040
+ # newest endpoint gateway first. Endpoint gateways with identical `created_at`
19041
+ # property values will in turn be sorted by ascending `name` property values.
18627
19042
  # @param name [String] Filters the collection to resources with a `name` property matching the exact
18628
19043
  # specified name.
18629
19044
  # @param start [String] A server-provided token determining what resource to start the page on.
@@ -18681,18 +19096,37 @@ module IbmVpc
18681
19096
  ##
18682
19097
  # @!method create_endpoint_gateway(target:, vpc:, allow_dns_resolution_binding: nil, ips: nil, name: nil, resource_group: nil, security_groups: nil)
18683
19098
  # Create an endpoint gateway.
18684
- # This request creates a new endpoint gateway. An endpoint gateway maps one or more
18685
- # reserved IPs in a VPC to a target outside the VPC.
19099
+ # This request creates a new endpoint gateway from an endpoint gateway prototype
19100
+ # object. The prototype object is structured in the same way as a retrieved endpoint
19101
+ # gateway, and contains the information necessary to create a new endpoint gateway.
19102
+ # An endpoint gateway maps one or more reserved IPs in a VPC to a target service
19103
+ # outside the VPC.
18686
19104
  # @param target [EndpointGatewayTargetPrototype] The target to use for this endpoint gateway. The target:
18687
19105
  # - Must not already be the target of another endpoint gateway in the VPC
18688
- # - Must not have a service endpoint that duplicates or overlaps with any
18689
- # `service_endpoints`
18690
- # of another endpoint gateway in the VPC.
19106
+ # - Must not have a service endpoint that overlaps with any `service_endpoints` of
19107
+ # another endpoint gateway in the VPC.
19108
+ #
19109
+ # If `allow_dns_resolution_binding` is `true`, then there must not be another
19110
+ # endpoint
19111
+ # gateway with `allow_dns_resolution_binding` set to `true` in the [DNS
19112
+ # sharing](/docs/vpc?topic=vpc-vpe-dns-sharing) connected topology that:
19113
+ # - Has the same `target` as this endpoint gateway
19114
+ # - Has `service_endpoints` that overlap with the `service_endpoints` for this
19115
+ # endpoint
19116
+ # gateway.
18691
19117
  # @param vpc [VPCIdentity] The VPC this endpoint gateway will reside in.
18692
19118
  # @param allow_dns_resolution_binding [Boolean] Indicates whether to allow DNS resolution for this endpoint gateway when the VPC
18693
19119
  # this endpoint gateway resides in has a DNS resolution binding to a VPC with
18694
19120
  # `dns.enable_hub` set to `true`.
18695
19121
  #
19122
+ # If `true`, then there must not be another endpoint gateway with
19123
+ # `allow_dns_resolution_binding` set to `true` in the [DNS
19124
+ # sharing](/docs/vpc?topic=vpc-vpe-dns-sharing) connected topology that:
19125
+ # - Has the same `target` as this endpoint gateway
19126
+ # - Has `service_endpoints` that overlap with the `service_endpoints` for this
19127
+ # endpoint
19128
+ # gateway.
19129
+ #
18696
19130
  # Must be `true` if the VPC this endpoint gateway resides in has `dns.enable_hub`
18697
19131
  # set to
18698
19132
  # `true`.
@@ -18992,7 +19426,10 @@ module IbmVpc
18992
19426
  ##
18993
19427
  # @!method update_endpoint_gateway(id:, endpoint_gateway_patch:)
18994
19428
  # Update an endpoint gateway.
18995
- # This request updates an endpoint gateway's name.
19429
+ # This request updates an endpoint gateway with the information in a provided
19430
+ # endpoint gateway patch. The endpoint gateway patch object is structured in the
19431
+ # same way as a retrieved endpoint gateway and contains only the information to be
19432
+ # updated.
18996
19433
  # @param id [String] The endpoint gateway identifier.
18997
19434
  # @param endpoint_gateway_patch [Hash] The endpoint gateway patch.
18998
19435
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ibm_vpc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.0
4
+ version: 0.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - dev@ibm.com
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2025-05-27 00:00:00.000000000 Z
11
+ date: 2025-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: ibm_cloud_sdk_core