ibm_vpc 0.5.0 → 0.6.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.
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- # (C) Copyright IBM Corp. 2020, 2021, 2022.
3
+ # (C) Copyright IBM Corp. 2020, 2021, 2022, 2023.
4
4
  #
5
5
  # Licensed under the Apache License, Version 2.0 (the "License");
6
6
  # you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
  #
17
- # IBM OpenAPI SDK Code Generator Version: 3.50.0-af9e48c4-20220523-163800
17
+ # IBM OpenAPI SDK Code Generator Version: 3.63.0-5dae26c1-20230111-193039
18
18
  #
19
19
  # The IBM Cloud Virtual Private Cloud (VPC) API can be used to programmatically
20
20
  # provision and manage virtual server instances, along with subnets, volumes, load
@@ -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 = "2022-03-29"
36
+ DEFAULT_SERVICE_VERSION = "2022-09-13"
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 `2022-07-12` and today's date (UTC).
45
+ # specify any date between `2022-09-13` and today's date (UTC).
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.
@@ -121,9 +121,10 @@ module IbmVpc
121
121
  # This request creates a new VPC from a VPC prototype object. The prototype object
122
122
  # is structured in the same way as a retrieved VPC, and contains the information
123
123
  # necessary to create the new VPC.
124
- # @param address_prefix_management [String] Indicates whether a default address prefix will be automatically created for each
125
- # zone in this VPC. If `manual`, this VPC will be created with no default address
126
- # prefixes.
124
+ # @param address_prefix_management [String] Indicates whether a [default address
125
+ # prefix](https://cloud.ibm.com/docs/vpc?topic=vpc-configuring-address-prefixes)
126
+ # will be automatically created for each zone in this VPC. If `manual`, this VPC
127
+ # will be created with no default address prefixes.
127
128
  #
128
129
  # Since address prefixes are managed identically regardless of whether they were
129
130
  # automatically created, the value is not preserved as a VPC property.
@@ -131,8 +132,8 @@ module IbmVpc
131
132
  # this VPC's resources will have private network connectivity to the account's
132
133
  # Classic Infrastructure resources. Only one VPC, per region, may be connected in
133
134
  # this way. This value is set at creation and subsequently immutable.
134
- # @param name [String] The unique user-defined name for this VPC. If unspecified, the name will be a
135
- # hyphenated list of randomly-selected words.
135
+ # @param name [String] The name for this VPC. The name must not be used by another VPC in the region. If
136
+ # unspecified, the name will be a hyphenated list of randomly-selected words.
136
137
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
137
138
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
138
139
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -175,10 +176,10 @@ module IbmVpc
175
176
  # @!method delete_vpc(id:)
176
177
  # Delete a VPC.
177
178
  # This request deletes a VPC. This operation cannot be reversed. For this request to
178
- # succeed, the VPC must not contain any instances, subnets, or public gateways. All
179
- # security groups and network ACLs associated with the VPC are automatically
180
- # deleted. All flow log collectors with `auto_delete` set to `true` targeting the
181
- # VPC or any resource in the VPC are automatically deleted.
179
+ # succeed, the VPC must not contain any instances, subnets, public gateways, or
180
+ # endpoint gateways. All security groups and network ACLs associated with the VPC
181
+ # are automatically deleted. All flow log collectors with `auto_delete` set to
182
+ # `true` targeting the VPC or any resource in the VPC are automatically deleted.
182
183
  # @param id [String] The VPC identifier.
183
184
  # @return [nil]
184
185
  def delete_vpc(id:)
@@ -329,8 +330,7 @@ module IbmVpc
329
330
  # Retrieve a VPC's default routing table.
330
331
  # This request retrieves the default routing table for the VPC specified by the
331
332
  # identifier in the URL. The default routing table is associated with any subnets in
332
- # the VPC which have not been explicitly associated with a user-defined routing
333
- # table.
333
+ # the VPC which have not been explicitly associated with another routing table.
334
334
  # @param id [String] The VPC identifier.
335
335
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
336
336
  def get_vpc_default_routing_table(id:)
@@ -446,9 +446,10 @@ module IbmVpc
446
446
  # object is structured in the same way as a retrieved prefix, and contains the
447
447
  # information necessary to create the new prefix.
448
448
  # @param vpc_id [String] The VPC identifier.
449
- # @param cidr [String] The IPv4 range of the address prefix, expressed in CIDR format. The request must
450
- # not overlap with any existing address prefixes in the VPC or any of the following
449
+ # @param cidr [String] The IPv4 range of the address prefix, expressed in CIDR format. The range must not
450
+ # overlap with any existing address prefixes in the VPC or any of the following
451
451
  # reserved address ranges:
452
+ #
452
453
  # - `127.0.0.0/8` (IPv4 loopback addresses)
453
454
  # - `161.26.0.0/16` (IBM services)
454
455
  # - `166.8.0.0/14` (Cloud Service Endpoints)
@@ -460,9 +461,9 @@ module IbmVpc
460
461
  # @param zone [ZoneIdentity] The zone this address prefix will reside in.
461
462
  # @param is_default [Boolean] Indicates whether this will be the default address prefix for this zone in this
462
463
  # VPC. If `true`, the VPC must not have a default address prefix for this zone.
463
- # @param name [String] The user-defined name for this address prefix. Names must be unique within the VPC
464
- # the address prefix resides in. If unspecified, the name will be a hyphenated list
465
- # of randomly-selected words.
464
+ # @param name [String] The name for this address prefix. The name must not be used by another address
465
+ # prefix for the VPC. If unspecified, the name will be a hyphenated list of
466
+ # randomly-selected words.
466
467
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
467
468
  def create_vpc_address_prefix(vpc_id:, cidr:, zone:, is_default: nil, name: nil)
468
469
  raise ArgumentError.new("version must be provided") if version.nil?
@@ -684,20 +685,19 @@ module IbmVpc
684
685
  # @param vpc_id [String] The VPC identifier.
685
686
  # @param destination [String] The destination of the route. At most two routes per `zone` in a table can have
686
687
  # the same destination, and only if both routes have an `action` of `deliver` and
687
- # the
688
- # `next_hop` is an IP address.
688
+ # the `next_hop` is an IP address.
689
689
  # @param zone [ZoneIdentity] The zone to apply the route to. (Traffic from subnets in this zone will be
690
690
  # subject to this route.).
691
691
  # @param action [String] The action to perform with a packet matching the route:
692
- # - `delegate`: delegate to the system's built-in routes
693
- # - `delegate_vpc`: delegate to the system's built-in routes, ignoring
694
- # Internet-bound
695
- # routes
692
+ # - `delegate`: delegate to system-provided routes
693
+ # - `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound
694
+ # routes
696
695
  # - `deliver`: deliver the packet to the specified `next_hop`
697
696
  # - `drop`: drop the packet.
698
- # @param name [String] The user-defined name for this route. If unspecified, the name will be a
699
- # hyphenated list of randomly-selected words. Names must be unique within the VPC
700
- # routing table the route resides in.
697
+ # @param name [String] The name for this route. The name must not be used by another route in the routing
698
+ # table. Names starting with `ibm-` are reserved for system-provided routes, and are
699
+ # not allowed. If unspecified, the name will be a hyphenated list of
700
+ # randomly-selected words.
701
701
  # @param next_hop [RoutePrototypeNextHop] If `action` is `deliver`, the next hop that packets will be delivered to. For
702
702
  # other `action`
703
703
  # values, it must be omitted or specified as `0.0.0.0`.
@@ -870,12 +870,12 @@ module IbmVpc
870
870
  ##
871
871
  # @!method list_vpc_routing_tables(vpc_id:, start: nil, limit: nil, is_default: nil)
872
872
  # List all routing tables for a VPC.
873
- # This request lists all user-defined routing tables for a VPC. Each subnet in a
874
- # VPC is associated with a routing table, which controls delivery of packets sent on
875
- # that subnet according to the action of the most specific matching route in the
876
- # table. If multiple equally-specific routes exist, traffic will be distributed
877
- # across them. If no routes match, delivery will be controlled by the system's
878
- # built-in routes.
873
+ # This request lists all routing tables for a VPC. Each subnet in a VPC is
874
+ # associated with a routing table, which controls delivery of packets sent on that
875
+ # subnet according to the action of the most specific matching route in the table.
876
+ # If multiple equally-specific routes exist, traffic will be distributed across
877
+ # them. If no routes match, delivery will be controlled by the system's built-in
878
+ # routes.
879
879
  # @param vpc_id [String] The VPC identifier.
880
880
  # @param start [String] A server-provided token determining what resource to start the page on.
881
881
  # @param limit [Fixnum] The number of resources to return on a page.
@@ -914,48 +914,59 @@ module IbmVpc
914
914
  end
915
915
 
916
916
  ##
917
- # @!method create_vpc_routing_table(vpc_id:, accept_routes_from: nil, name: nil, route_direct_link_ingress: nil, route_transit_gateway_ingress: nil, route_vpc_zone_ingress: nil, routes: nil)
917
+ # @!method create_vpc_routing_table(vpc_id:, accept_routes_from: nil, name: nil, route_direct_link_ingress: nil, route_internet_ingress: nil, route_transit_gateway_ingress: nil, route_vpc_zone_ingress: nil, routes: nil)
918
918
  # Create a routing table for a VPC.
919
- # This request creates a user-defined routing table from a routing table prototype
920
- # object. The prototype object is structured in the same way as a retrieved routing
921
- # table, and contains the information necessary to create the new routing table.
919
+ # This request creates a routing table from a routing table prototype object. The
920
+ # prototype object is structured in the same way as a retrieved routing table, and
921
+ # contains the information necessary to create the new routing table.
922
922
  # @param vpc_id [String] The VPC identifier.
923
923
  # @param accept_routes_from [Array[ResourceFilter]] The filters specifying the resources that may create routes in this routing table.
924
924
  #
925
925
  # At present, only the `resource_type` filter is permitted, and only the
926
926
  # `vpn_server` value is supported, but filter support is expected to expand in the
927
927
  # future.
928
- # @param name [String] The user-defined name for this routing table. Names must be unique within the VPC
929
- # the routing table resides in. If unspecified, the name will be a hyphenated list
930
- # of randomly-selected words.
928
+ # @param name [String] The name for this routing table. The name must not be used by another routing
929
+ # table in the VPC. If unspecified, the name will be a hyphenated list of
930
+ # randomly-selected words.
931
931
  # @param route_direct_link_ingress [Boolean] If set to `true`, this routing table will be used to route traffic that originates
932
- # from [Direct Link](https://cloud.ibm.com/docs/dl/) to this VPC. For this to
933
- # succeed, the VPC must not already have a routing table with this property set to
934
- # `true`.
932
+ # from [Direct Link](https://cloud.ibm.com/docs/dl) to this VPC. The VPC must not
933
+ # already have a routing table with this property set to `true`.
935
934
  #
936
935
  # Incoming traffic will be routed according to the routing table with one exception:
937
936
  # routes with an `action` of `deliver` are treated as `drop` unless the `next_hop`
938
937
  # is an IP address bound to a network interface on a subnet in the route's `zone`.
939
938
  # Therefore, if an incoming packet matches a route with a `next_hop` of an
940
939
  # internet-bound IP address or a VPN gateway connection, the packet will be dropped.
940
+ #
941
+ # If [Classic
942
+ # Access](https://cloud.ibm.com/docs/vpc?topic=vpc-setting-up-access-to-classic-infrastructure)
943
+ # is enabled for this VPC, and this property is set to `true`, its incoming traffic
944
+ # will also be routed according to this routing table.
945
+ # @param route_internet_ingress [Boolean] If set to `true`, this routing table will be used to route traffic that originates
946
+ # from the internet. For this to succeed, the VPC must not already have a routing
947
+ # table with this property set to `true`.
948
+ #
949
+ # Incoming traffic will be routed according to the routing table with two
950
+ # exceptions:
951
+ # - Traffic destined for IP addresses associated with public gateways will not be
952
+ # subject to routes in this routing table.
953
+ # - Routes with an action of deliver are treated as drop unless the `next_hop` is an
954
+ # IP address bound to a network interface on a subnet in the route's `zone`.
955
+ # Therefore, if an incoming packet matches a route with a `next_hop` of an
956
+ # internet-bound IP address or a VPN gateway connection, the packet will be
957
+ # dropped.
941
958
  # @param route_transit_gateway_ingress [Boolean] If set to `true`, this routing table will be used to route traffic that originates
942
- # from [Transit Gateway](https://cloud.ibm.com/cloud/transit-gateway/) to this VPC.
943
- # For this to succeed, the VPC must not already have a routing table with this
944
- # property set to `true`.
959
+ # from [Transit Gateway](https://cloud.ibm.com/docs/transit-gateway) to this VPC.
960
+ # The VPC must not already have a routing table with this property set to `true`.
945
961
  #
946
962
  # Incoming traffic will be routed according to the routing table with one exception:
947
963
  # routes with an `action` of `deliver` are treated as `drop` unless the `next_hop`
948
964
  # is an IP address bound to a network interface on a subnet in the route's `zone`.
949
965
  # Therefore, if an incoming packet matches a route with a `next_hop` of an
950
966
  # internet-bound IP address or a VPN gateway connection, the packet will be dropped.
951
- #
952
- # If [Classic
953
- # Access](https://cloud.ibm.com/docs/vpc?topic=vpc-setting-up-access-to-classic-infrastructure)
954
- # is enabled for this VPC, and this property is set to `true`, its incoming traffic
955
- # will also be routed according to this routing table.
956
967
  # @param route_vpc_zone_ingress [Boolean] If set to `true`, this routing table will be used to route traffic that originates
957
- # from subnets in other zones in this VPC. For this to succeed, the VPC must not
958
- # already have a routing table with this property set to `true`.
968
+ # from subnets in other zones in this VPC. The VPC must not already have a routing
969
+ # table with this property set to `true`.
959
970
  #
960
971
  # Incoming traffic will be routed according to the routing table with one exception:
961
972
  # routes with an `action` of `deliver` are treated as `drop` unless the `next_hop`
@@ -965,7 +976,7 @@ module IbmVpc
965
976
  # @param routes [Array[RoutePrototype]] The prototype objects for routes to create for this routing table. If unspecified,
966
977
  # the routing table will be created with no routes.
967
978
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
968
- def create_vpc_routing_table(vpc_id:, accept_routes_from: nil, name: nil, route_direct_link_ingress: nil, route_transit_gateway_ingress: nil, route_vpc_zone_ingress: nil, routes: nil)
979
+ def create_vpc_routing_table(vpc_id:, accept_routes_from: nil, name: nil, route_direct_link_ingress: nil, route_internet_ingress: nil, route_transit_gateway_ingress: nil, route_vpc_zone_ingress: nil, routes: nil)
969
980
  raise ArgumentError.new("version must be provided") if version.nil?
970
981
 
971
982
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -986,6 +997,7 @@ module IbmVpc
986
997
  "accept_routes_from" => accept_routes_from,
987
998
  "name" => name,
988
999
  "route_direct_link_ingress" => route_direct_link_ingress,
1000
+ "route_internet_ingress" => route_internet_ingress,
989
1001
  "route_transit_gateway_ingress" => route_transit_gateway_ingress,
990
1002
  "route_vpc_zone_ingress" => route_vpc_zone_ingress,
991
1003
  "routes" => routes
@@ -1193,20 +1205,19 @@ module IbmVpc
1193
1205
  # @param routing_table_id [String] The routing table identifier.
1194
1206
  # @param destination [String] The destination of the route. At most two routes per `zone` in a table can have
1195
1207
  # the same destination, and only if both routes have an `action` of `deliver` and
1196
- # the
1197
- # `next_hop` is an IP address.
1208
+ # the `next_hop` is an IP address.
1198
1209
  # @param zone [ZoneIdentity] The zone to apply the route to. (Traffic from subnets in this zone will be
1199
1210
  # subject to this route.).
1200
1211
  # @param action [String] The action to perform with a packet matching the route:
1201
- # - `delegate`: delegate to the system's built-in routes
1202
- # - `delegate_vpc`: delegate to the system's built-in routes, ignoring
1203
- # Internet-bound
1204
- # routes
1212
+ # - `delegate`: delegate to system-provided routes
1213
+ # - `delegate_vpc`: delegate to system-provided routes, ignoring Internet-bound
1214
+ # routes
1205
1215
  # - `deliver`: deliver the packet to the specified `next_hop`
1206
1216
  # - `drop`: drop the packet.
1207
- # @param name [String] The user-defined name for this route. If unspecified, the name will be a
1208
- # hyphenated list of randomly-selected words. Names must be unique within the VPC
1209
- # routing table the route resides in.
1217
+ # @param name [String] The name for this route. The name must not be used by another route in the routing
1218
+ # table. Names starting with `ibm-` are reserved for system-provided routes, and are
1219
+ # not allowed. If unspecified, the name will be a hyphenated list of
1220
+ # randomly-selected words.
1210
1221
  # @param next_hop [RoutePrototypeNextHop] If `action` is `deliver`, the next hop that packets will be delivered to. For
1211
1222
  # other `action`
1212
1223
  # values, it must be omitted or specified as `0.0.0.0`.
@@ -1258,7 +1269,8 @@ module IbmVpc
1258
1269
  ##
1259
1270
  # @!method delete_vpc_routing_table_route(vpc_id:, routing_table_id:, id:)
1260
1271
  # Delete a VPC routing table route.
1261
- # This request deletes a VPC route. This operation cannot be reversed.
1272
+ # This request deletes a VPC route. This operation cannot be reversed. Only VPC
1273
+ # routes with an `origin` of `user` are allowed to be deleted.
1262
1274
  # @param vpc_id [String] The VPC identifier.
1263
1275
  # @param routing_table_id [String] The routing table identifier.
1264
1276
  # @param id [String] The VPC routing table route identifier.
@@ -1343,7 +1355,8 @@ module IbmVpc
1343
1355
  # Update a VPC routing table route.
1344
1356
  # This request updates a VPC route with the information provided in a route patch
1345
1357
  # object. The patch object is structured in the same way as a retrieved VPC route
1346
- # and needs to contain only the information to be updated.
1358
+ # and needs to contain only the information to be updated. Only VPC routes with an
1359
+ # `origin` of `user` are allowed to be updated.
1347
1360
  # @param vpc_id [String] The VPC identifier.
1348
1361
  # @param routing_table_id [String] The routing table identifier.
1349
1362
  # @param id [String] The VPC routing table route identifier.
@@ -1637,10 +1650,9 @@ module IbmVpc
1637
1650
 
1638
1651
  ##
1639
1652
  # @!method replace_subnet_network_acl(id:, network_acl_identity:)
1640
- # Attach a network ACL to a subnet.
1641
- # This request attaches the network ACL, specified in the request body, to the
1642
- # subnet specified by the subnet identifier in the URL. This replaces the existing
1643
- # network ACL on the subnet.
1653
+ # Replace the network ACL for a subnet.
1654
+ # This request replaces the existing network ACL for a subnet with the network ACL
1655
+ # specified in the request body.
1644
1656
  # @param id [String] The subnet identifier.
1645
1657
  # @param network_acl_identity [NetworkACLIdentity] The network ACL identity.
1646
1658
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -1833,10 +1845,9 @@ module IbmVpc
1833
1845
 
1834
1846
  ##
1835
1847
  # @!method replace_subnet_routing_table(id:, routing_table_identity:)
1836
- # Attach a routing table to a subnet.
1837
- # This request attaches the routing table, specified in the request body, to the
1838
- # subnet specified by the subnet identifier in the URL. This replaces the existing
1839
- # routing table on the subnet.
1848
+ # Replace the routing table for a subnet.
1849
+ # This request replaces the existing routing table for a subnet with the routing
1850
+ # table specified in the request body.
1840
1851
  #
1841
1852
  # For this request to succeed, the routing table `route_direct_link_ingress`,
1842
1853
  # `route_transit_gateway_ingress`, and `route_vpc_zone_ingress` properties must be
@@ -1938,13 +1949,17 @@ module IbmVpc
1938
1949
  # either
1939
1950
  # `target` is deleted, or the reserved IP is unbound. Must be `false` if the
1940
1951
  # reserved IP is unbound.
1941
- # @param name [String] The user-defined name for this reserved IP. If unspecified, the name will be a
1942
- # hyphenated list of randomly-selected words. Names must be unique within the subnet
1943
- # the reserved IP resides in. Names beginning with `ibm-` are reserved for
1944
- # provider-owned resources.
1945
- # @param target [ReservedIPTargetPrototype] The target this reserved IP is to be bound to. The target must be an endpoint
1946
- # gateway not
1947
- # already bound to a reserved IP in the subnet's zone.
1952
+ # @param name [String] The name for this reserved IP. The name must not be used by another reserved IP in
1953
+ # the subnet. Names starting with `ibm-` are reserved for provider-owned resources,
1954
+ # and are not allowed. If unspecified, the name will be a hyphenated list of
1955
+ # randomly-selected words.
1956
+ # @param target [ReservedIPTargetPrototype] The target to bind this reserved IP to. The target must be in the same VPC.
1957
+ #
1958
+ # At present, only endpoint gateway targets are supported. The endpoint gateway
1959
+ # must
1960
+ # not be already bound to a reserved IP in the subnet's zone.
1961
+ #
1962
+ # If unspecified, the reserved IP will be created unbound.
1948
1963
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
1949
1964
  def create_subnet_reserved_ip(subnet_id:, address: nil, auto_delete: nil, name: nil, target: nil)
1950
1965
  raise ArgumentError.new("version must be provided") if version.nil?
@@ -1987,6 +2002,10 @@ module IbmVpc
1987
2002
  # @!method delete_subnet_reserved_ip(subnet_id:, id:)
1988
2003
  # Delete a reserved IP.
1989
2004
  # This request releases a reserved IP. This operation cannot be reversed.
2005
+ #
2006
+ # For this request to succeed, the reserved IP must not be required by another
2007
+ # resource, such as a network interface for which it is the primary IP. A
2008
+ # provider-owned reserved IP is not allowed to be deleted.
1990
2009
  # @param subnet_id [String] The subnet identifier.
1991
2010
  # @param id [String] The reserved IP identifier.
1992
2011
  # @return [nil]
@@ -2010,8 +2029,7 @@ module IbmVpc
2010
2029
  }
2011
2030
 
2012
2031
  method_url = "/subnets/%s/reserved_ips/%s" % [ERB::Util.url_encode(subnet_id), ERB::Util.url_encode(id)]
2013
- puts params
2014
- puts method_url
2032
+
2015
2033
  request(
2016
2034
  method: "DELETE",
2017
2035
  url: method_url,
@@ -2067,6 +2085,8 @@ module IbmVpc
2067
2085
  # This request updates a reserved IP with the information in a provided reserved IP
2068
2086
  # patch. The reserved IP patch object is structured in the same way as a retrieved
2069
2087
  # reserved IP and contains only the information to be updated.
2088
+ #
2089
+ # A provider-owned reserved IP is not allowed to be updated.
2070
2090
  # @param subnet_id [String] The subnet identifier.
2071
2091
  # @param id [String] The reserved IP identifier.
2072
2092
  # @param reserved_ip_patch [Hash] The reserved IP patch.
@@ -2116,7 +2136,7 @@ module IbmVpc
2116
2136
  # List all images.
2117
2137
  # This request lists all images available in the region. An image provides source
2118
2138
  # data for a volume. Images are either system-provided, or created from another
2119
- # source, such as importing from object storage.
2139
+ # source, such as importing from Cloud Object Storage.
2120
2140
  #
2121
2141
  # The images will be sorted by their `created_at` property values, with the newest
2122
2142
  # first. Images with identical `created_at` values will be secondarily sorted by
@@ -2209,9 +2229,10 @@ module IbmVpc
2209
2229
  # This request deletes an image. This operation cannot be reversed. A
2210
2230
  # system-provided image is not allowed to be deleted. Additionally, an image cannot
2211
2231
  # be deleted if it:
2212
- # - has a `status` of `tentative` or `deleting`
2232
+ # - has a `status` of `deleting`
2213
2233
  # - has a `status` of `pending` with a `status_reasons` code of
2214
- # `image_request_in_progress`.
2234
+ # `image_request_in_progress`
2235
+ # - has `catalog_offering.managed` set to `true`.
2215
2236
  # @param id [String] The image identifier.
2216
2237
  # @return [nil]
2217
2238
  def delete_image(id:)
@@ -2445,8 +2466,8 @@ module IbmVpc
2445
2466
  # space-separated fields: the algorithm name, base64-encoded key, and a comment).
2446
2467
  # The algorithm and comment fields may be omitted, as only the key field is
2447
2468
  # imported.
2448
- # @param name [String] The unique user-defined name for this key. If unspecified, the name will be a
2449
- # hyphenated list of randomly-selected words.
2469
+ # @param name [String] The name for this key. The name must not be used by another key in the region. If
2470
+ # unspecified, the name will be a hyphenated list of randomly-selected words.
2450
2471
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
2451
2472
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
2452
2473
  # @param type [String] The crypto-system used by this key.
@@ -2606,9 +2627,10 @@ module IbmVpc
2606
2627
  ##
2607
2628
  # @!method list_instance_profiles
2608
2629
  # List all instance profiles.
2609
- # This request lists provisionable instance profiles in the region. An instance
2610
- # profile specifies the performance characteristics and pricing model for an
2611
- # instance.
2630
+ # This request lists provisionable [instance
2631
+ # profiles](https://cloud.ibm.com/docs/vpc?topic=vpc-profiles) in the region. An
2632
+ # instance profile specifies the performance characteristics and pricing model for
2633
+ # an instance.
2612
2634
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
2613
2635
  def list_instance_profiles
2614
2636
  raise ArgumentError.new("version must be provided") if version.nil?
@@ -3394,8 +3416,8 @@ module IbmVpc
3394
3416
  # @param allow_ip_spoofing [Boolean] Indicates whether source IP spoofing is allowed on this interface. If false,
3395
3417
  # source IP spoofing is prevented on this interface. If true, source IP spoofing is
3396
3418
  # allowed on this interface.
3397
- # @param name [String] The user-defined name for network interface. Names must be unique within the
3398
- # instance the network interface resides in. If unspecified, the name will be a
3419
+ # @param name [String] The name for network interface. The name must not be used by another network
3420
+ # interface on the virtual server instance. If unspecified, the name will be a
3399
3421
  # hyphenated list of randomly-selected words.
3400
3422
  # @param primary_ip [NetworkInterfaceIPPrototype] The primary IP address to bind to the network interface. This can be specified
3401
3423
  # using
@@ -3876,10 +3898,10 @@ module IbmVpc
3876
3898
  # @param instance_id [String] The instance identifier.
3877
3899
  # @param volume [VolumeAttachmentPrototypeVolume] An existing volume to attach to the instance, or a prototype object for a new
3878
3900
  # volume.
3879
- # @param delete_volume_on_instance_delete [Boolean] If set to true, when deleting the instance the volume will also be deleted.
3880
- # @param name [String] The user-defined name for this volume attachment. Names must be unique within the
3881
- # instance the volume attachment resides in. If unspecified, the name will be a
3882
- # hyphenated list of randomly-selected words.
3901
+ # @param delete_volume_on_instance_delete [Boolean] Indicates whether deleting the instance will also delete the attached volume.
3902
+ # @param name [String] The name for this volume attachment. The name must not be used by another volume
3903
+ # attachment on the instance. If unspecified, the name will be a hyphenated list of
3904
+ # randomly-selected words.
3883
3905
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
3884
3906
  def create_instance_volume_attachment(instance_id:, volume:, delete_volume_on_instance_delete: nil, name: nil)
3885
3907
  raise ArgumentError.new("version must be provided") if version.nil?
@@ -4094,19 +4116,23 @@ module IbmVpc
4094
4116
  # Instance groups are not compatible with instance templates that specify `true` for
4095
4117
  # `default_trusted_profile.auto_link`.
4096
4118
  # @param subnets [Array[SubnetIdentity]] The subnets to use when creating new instances.
4097
- # @param application_port [Fixnum] Required if specifying a load balancer pool only. Used by the instance group when
4098
- # scaling up instances to supply the port for the load balancer pool member.
4119
+ # @param application_port [Fixnum] The port to use for new load balancer pool members created by this instance group.
4120
+ #
4121
+ # This property must be specified if and only if `load_balancer_pool` has been
4122
+ # specified.
4099
4123
  # @param load_balancer [LoadBalancerIdentity] The load balancer associated with the specified load balancer pool.
4100
4124
  # Required if `load_balancer_pool` is specified.
4101
4125
  #
4102
4126
  # At present, only load balancers in the `application` family are supported.
4103
- # @param load_balancer_pool [LoadBalancerPoolIdentity] If specified, the load balancer pool will be managed by this
4104
- # group. Instances created by this group will have a new load
4105
- # balancer pool member in that pool created. Must be used with
4106
- # `application_port`.
4127
+ # @param load_balancer_pool [LoadBalancerPoolIdentity] If specified, the load balancer pool this instance group will manage. A pool
4128
+ # member
4129
+ # will be created for each instance created by this group.
4130
+ #
4131
+ # If specified, `load_balancer` and `application_port` must also be specified.
4107
4132
  # @param membership_count [Fixnum] The number of instances in the instance group.
4108
- # @param name [String] The unique user-defined name for this instance group. If unspecified, the name
4109
- # will be a hyphenated list of randomly-selected words.
4133
+ # @param name [String] The name for this instance group. The name must not be used by another instance
4134
+ # group in the region. If unspecified, the name will be a hyphenated list of
4135
+ # randomly-selected words.
4110
4136
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
4111
4137
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
4112
4138
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -5203,8 +5229,9 @@ module IbmVpc
5203
5229
  # @param _class [String] The dedicated host profile class for hosts in this group.
5204
5230
  # @param family [String] The dedicated host profile family for hosts in this group.
5205
5231
  # @param zone [ZoneIdentity] The zone this dedicated host group will reside in.
5206
- # @param name [String] The unique user-defined name for this dedicated host group. If unspecified, the
5207
- # name will be a hyphenated list of randomly-selected words.
5232
+ # @param name [String] The name for this dedicated host group. The name must not be used by another
5233
+ # dedicated host group in the region. If unspecified, the name will be a hyphenated
5234
+ # list of randomly-selected words.
5208
5235
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
5209
5236
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
5210
5237
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -5363,7 +5390,8 @@ module IbmVpc
5363
5390
  ##
5364
5391
  # @!method list_dedicated_host_profiles(start: nil, limit: nil)
5365
5392
  # List all dedicated host profiles.
5366
- # This request lists all provisionable dedicated host profiles in the region. A
5393
+ # This request lists provisionable [dedicated host
5394
+ # profiles](https://cloud.ibm.com/docs/vpc?topic=vpc-dh-profiles) in the region. A
5367
5395
  # dedicated host profile specifies the hardware characteristics for a dedicated
5368
5396
  # host.
5369
5397
  # @param start [String] A server-provided token determining what resource to start the page on.
@@ -5814,9 +5842,9 @@ module IbmVpc
5814
5842
  # user tag and a matching type will be subject to the backup policy.
5815
5843
  # @param match_resource_types [Array[String]] A resource type this backup policy applies to. Resources that have both a matching
5816
5844
  # type and a matching user tag will be subject to the backup policy.
5817
- # @param name [String] The user-defined name for this backup policy. Names must be unique within the
5818
- # region this backup policy resides in. If unspecified, the name will be a
5819
- # hyphenated list of randomly-selected words.
5845
+ # @param name [String] The name for this backup policy. The name must not be used by another backup
5846
+ # policy in the region. If unspecified, the name will be a hyphenated list of
5847
+ # randomly-selected words.
5820
5848
  # @param plans [Array[BackupPolicyPlanPrototype]] The prototype objects for backup plans to be created for this backup policy.
5821
5849
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
5822
5850
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
@@ -5857,6 +5885,105 @@ module IbmVpc
5857
5885
  response
5858
5886
  end
5859
5887
 
5888
+ ##
5889
+ # @!method list_backup_policy_jobs(backup_policy_id:, status: nil, backup_policy_plan_id: nil, start: nil, limit: nil, sort: nil, source_id: nil, target_snapshots_id: nil, target_snapshots_crn: nil)
5890
+ # List all jobs for a backup policy.
5891
+ # This request retrieves all jobs for a backup policy. A backup job represents the
5892
+ # execution of a backup policy plan for a resource matching the policy's criteria.
5893
+ # @param backup_policy_id [String] The backup policy identifier.
5894
+ # @param status [String] Filters the collection to backup policy jobs with the specified status.
5895
+ # @param backup_policy_plan_id [String] Filters the collection to backup policy jobs with the backup plan with the
5896
+ # specified identifier.
5897
+ # @param start [String] A server-provided token determining what resource to start the page on.
5898
+ # @param limit [Fixnum] The number of resources to return on a page.
5899
+ # @param sort [String] Sorts the returned collection by the specified property name in ascending order. A
5900
+ # `-` may be prepended to the name to sort in descending order. For example, the
5901
+ # value `-created_at` sorts the collection by the `created_at` property in
5902
+ # descending order, and the value `name` sorts it by the `name` property in
5903
+ # ascending order.
5904
+ # @param source_id [String] Filters the collection to backup policy jobs with a source with the specified
5905
+ # identifier.
5906
+ # @param target_snapshots_id [String] Filters the collection to resources with the target snapshot with the specified
5907
+ # identifier.
5908
+ # @param target_snapshots_crn [String] Filters the collection to backup policy jobs with the target snapshot with the
5909
+ # specified CRN.
5910
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
5911
+ def list_backup_policy_jobs(backup_policy_id:, status: nil, backup_policy_plan_id: nil, start: nil, limit: nil, sort: nil, source_id: nil, target_snapshots_id: nil, target_snapshots_crn: nil)
5912
+ raise ArgumentError.new("version must be provided") if version.nil?
5913
+
5914
+ raise ArgumentError.new("generation must be provided") if generation.nil?
5915
+
5916
+ raise ArgumentError.new("backup_policy_id must be provided") if backup_policy_id.nil?
5917
+
5918
+ headers = {
5919
+ }
5920
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_backup_policy_jobs")
5921
+ headers.merge!(sdk_headers)
5922
+
5923
+ params = {
5924
+ "version" => @version,
5925
+ "generation" => @generation,
5926
+ "status" => status,
5927
+ "backup_policy_plan.id" => backup_policy_plan_id,
5928
+ "start" => start,
5929
+ "limit" => limit,
5930
+ "sort" => sort,
5931
+ "source.id" => source_id,
5932
+ "target_snapshots[].id" => target_snapshots_id,
5933
+ "target_snapshots[].crn" => target_snapshots_crn
5934
+ }
5935
+
5936
+ method_url = "/backup_policies/%s/jobs" % [ERB::Util.url_encode(backup_policy_id)]
5937
+
5938
+ response = request(
5939
+ method: "GET",
5940
+ url: method_url,
5941
+ headers: headers,
5942
+ params: params,
5943
+ accept_json: true
5944
+ )
5945
+ response
5946
+ end
5947
+
5948
+ ##
5949
+ # @!method get_backup_policy_job(backup_policy_id:, id:)
5950
+ # Retrieve a backup policy job.
5951
+ # This request retrieves a single backup policy job specified by the identifier in
5952
+ # the URL.
5953
+ # @param backup_policy_id [String] The backup policy identifier.
5954
+ # @param id [String] The backup policy job identifier.
5955
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
5956
+ def get_backup_policy_job(backup_policy_id:, id:)
5957
+ raise ArgumentError.new("version must be provided") if version.nil?
5958
+
5959
+ raise ArgumentError.new("generation must be provided") if generation.nil?
5960
+
5961
+ raise ArgumentError.new("backup_policy_id must be provided") if backup_policy_id.nil?
5962
+
5963
+ raise ArgumentError.new("id must be provided") if id.nil?
5964
+
5965
+ headers = {
5966
+ }
5967
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "get_backup_policy_job")
5968
+ headers.merge!(sdk_headers)
5969
+
5970
+ params = {
5971
+ "version" => @version,
5972
+ "generation" => @generation
5973
+ }
5974
+
5975
+ method_url = "/backup_policies/%s/jobs/%s" % [ERB::Util.url_encode(backup_policy_id), ERB::Util.url_encode(id)]
5976
+
5977
+ response = request(
5978
+ method: "GET",
5979
+ url: method_url,
5980
+ headers: headers,
5981
+ params: params,
5982
+ accept_json: true
5983
+ )
5984
+ response
5985
+ end
5986
+
5860
5987
  ##
5861
5988
  # @!method list_backup_policy_plans(backup_policy_id:, name: nil)
5862
5989
  # List all plans for a backup policy.
@@ -5896,7 +6023,7 @@ module IbmVpc
5896
6023
  end
5897
6024
 
5898
6025
  ##
5899
- # @!method create_backup_policy_plan(backup_policy_id:, cron_spec:, active: nil, attach_user_tags: nil, copy_user_tags: nil, deletion_trigger: nil, name: nil)
6026
+ # @!method create_backup_policy_plan(backup_policy_id:, cron_spec:, active: nil, attach_user_tags: nil, clone_policy: nil, copy_user_tags: nil, deletion_trigger: nil, name: nil)
5900
6027
  # Create a plan for a backup policy.
5901
6028
  # This request creates a new backup policy plan from a backup policy plan prototype
5902
6029
  # object. The prototype object is structured in the same way as a retrieved backup
@@ -5917,14 +6044,15 @@ module IbmVpc
5917
6044
  # @param active [Boolean] Indicates whether the plan is active.
5918
6045
  # @param attach_user_tags [Array[String]] User tags to attach to each backup (snapshot) created by this plan. If
5919
6046
  # unspecified, no user tags will be attached.
6047
+ # @param clone_policy [BackupPolicyPlanClonePolicyPrototype]
5920
6048
  # @param copy_user_tags [Boolean] Indicates whether to copy the source's user tags to the created backups
5921
6049
  # (snapshots).
5922
6050
  # @param deletion_trigger [BackupPolicyPlanDeletionTriggerPrototype]
5923
- # @param name [String] The user-defined name for this backup policy plan. Names must be unique within the
5924
- # backup policy this plan resides in. If unspecified, the name will be a hyphenated
5925
- # list of randomly-selected words.
6051
+ # @param name [String] The name for this backup policy plan. The name must not be used by another plan
6052
+ # for the backup policy. If unspecified, the name will be a hyphenated list of
6053
+ # randomly-selected words.
5926
6054
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
5927
- def create_backup_policy_plan(backup_policy_id:, cron_spec:, active: nil, attach_user_tags: nil, copy_user_tags: nil, deletion_trigger: nil, name: nil)
6055
+ def create_backup_policy_plan(backup_policy_id:, cron_spec:, active: nil, attach_user_tags: nil, clone_policy: nil, copy_user_tags: nil, deletion_trigger: nil, name: nil)
5928
6056
  raise ArgumentError.new("version must be provided") if version.nil?
5929
6057
 
5930
6058
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -5947,6 +6075,7 @@ module IbmVpc
5947
6075
  "cron_spec" => cron_spec,
5948
6076
  "active" => active,
5949
6077
  "attach_user_tags" => attach_user_tags,
6078
+ "clone_policy" => clone_policy,
5950
6079
  "copy_user_tags" => copy_user_tags,
5951
6080
  "deletion_trigger" => deletion_trigger,
5952
6081
  "name" => name
@@ -6278,8 +6407,9 @@ module IbmVpc
6278
6407
  # this property, check for and log unknown values. Optionally halt processing and
6279
6408
  # surface the error, or bypass the placement group on which the unexpected strategy
6280
6409
  # was encountered.
6281
- # @param name [String] The unique user-defined name for this placement group. If unspecified, the name
6282
- # will be a hyphenated list of randomly-selected words.
6410
+ # @param name [String] The name for this placement group. The name must not be used by another placement
6411
+ # group in the region. If unspecified, the name will be a hyphenated list of
6412
+ # randomly-selected words.
6283
6413
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
6284
6414
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
6285
6415
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -6442,9 +6572,10 @@ module IbmVpc
6442
6572
  ##
6443
6573
  # @!method list_bare_metal_server_profiles(start: nil, limit: nil)
6444
6574
  # List all bare metal server profiles.
6445
- # This request lists all bare metal server profiles available in the region. A bare
6446
- # metal server profile specifies the performance characteristics and pricing model
6447
- # for a bare metal server.
6575
+ # This request lists all [bare metal server
6576
+ # profiles](https://cloud.ibm.com/docs/vpc?topic=vpc-bare-metal-servers-profile)
6577
+ # available in the region. A bare metal server profile specifies the performance
6578
+ # characteristics and pricing model for a bare metal server.
6448
6579
  # @param start [String] A server-provided token determining what resource to start the page on.
6449
6580
  # @param limit [Fixnum] The number of resources to return on a page.
6450
6581
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -6569,7 +6700,7 @@ module IbmVpc
6569
6700
  end
6570
6701
 
6571
6702
  ##
6572
- # @!method create_bare_metal_server(initialization:, primary_network_interface:, profile:, zone:, name: nil, network_interfaces: nil, resource_group: nil, vpc: nil)
6703
+ # @!method create_bare_metal_server(initialization:, primary_network_interface:, profile:, zone:, enable_secure_boot: nil, name: nil, network_interfaces: nil, resource_group: nil, trusted_platform_module: nil, vpc: nil)
6573
6704
  # Create a bare metal server.
6574
6705
  # This request provisions a new bare metal server from a prototype object. The
6575
6706
  # prototype object is structured in the same way as a retrieved bare metal server,
@@ -6577,18 +6708,26 @@ module IbmVpc
6577
6708
  # bare metal server is automatically started.
6578
6709
  # @param initialization [BareMetalServerInitializationPrototype]
6579
6710
  # @param primary_network_interface [BareMetalServerPrimaryNetworkInterfacePrototype] Primary network interface for the bare metal server.
6580
- # @param profile [BareMetalServerProfileIdentity] The profile to use for this bare metal server.
6711
+ # @param profile [BareMetalServerProfileIdentity] The [profile](https://cloud.ibm.com/docs/vpc?topic=vpc-bare-metal-servers-profile)
6712
+ # to use for this bare metal server.
6581
6713
  # @param zone [ZoneIdentity] The zone this bare metal server will reside in.
6582
- # @param name [String] The unique user-defined name for this bare metal server (and default system
6583
- # hostname). If unspecified, the name will be a hyphenated list of randomly-selected
6584
- # words.
6714
+ # @param enable_secure_boot [Boolean] Indicates whether secure boot is enabled. If enabled, the image must support
6715
+ # secure boot or the server will fail to boot.
6716
+ # @param name [String] The name for this bare metal server. The name must not be used by another bare
6717
+ # metal server in the region. If unspecified, the name will be a hyphenated list of
6718
+ # randomly-selected words.
6719
+ #
6720
+ # The system hostname will be based on this name.
6585
6721
  # @param network_interfaces [Array[BareMetalServerNetworkInterfacePrototype]] The additional network interfaces to create for the bare metal server.
6586
6722
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
6587
6723
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
6588
- # @param vpc [VPCIdentity] The VPC the bare metal server is to be a part of. If specified, it must match the
6589
- # VPC referenced by the subnets of the server's network interfaces.
6724
+ # @param trusted_platform_module [BareMetalServerTrustedPlatformModulePrototype]
6725
+ # @param vpc [VPCIdentity] The VPC this bare metal server will reside in.
6726
+ #
6727
+ # If specified, it must match the VPC for the subnets of the server's network
6728
+ # interfaces.
6590
6729
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
6591
- def create_bare_metal_server(initialization:, primary_network_interface:, profile:, zone:, name: nil, network_interfaces: nil, resource_group: nil, vpc: nil)
6730
+ def create_bare_metal_server(initialization:, primary_network_interface:, profile:, zone:, enable_secure_boot: nil, name: nil, network_interfaces: nil, resource_group: nil, trusted_platform_module: nil, vpc: nil)
6592
6731
  raise ArgumentError.new("version must be provided") if version.nil?
6593
6732
 
6594
6733
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -6616,9 +6755,11 @@ module IbmVpc
6616
6755
  "primary_network_interface" => primary_network_interface,
6617
6756
  "profile" => profile,
6618
6757
  "zone" => zone,
6758
+ "enable_secure_boot" => enable_secure_boot,
6619
6759
  "name" => name,
6620
6760
  "network_interfaces" => network_interfaces,
6621
6761
  "resource_group" => resource_group,
6762
+ "trusted_platform_module" => trusted_platform_module,
6622
6763
  "vpc" => vpc
6623
6764
  }
6624
6765
 
@@ -6644,7 +6785,9 @@ module IbmVpc
6644
6785
  # request. The access token is only valid for a short period of time, and a maximum
6645
6786
  # of one token is valid for a given bare metal server at a time.
6646
6787
  # @param bare_metal_server_id [String] The bare metal server identifier.
6647
- # @param console_type [String] The bare metal server console type for which this token may be used.
6788
+ # @param console_type [String] The bare metal server console type for which this token may be used
6789
+ #
6790
+ # Must be `serial` for bare metal servers with a `cpu.architecture` of `s390x`.
6648
6791
  # @param force [Boolean] Indicates whether to disconnect an existing serial console session as the serial
6649
6792
  # console cannot be shared. This has no effect on VNC consoles.
6650
6793
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -7191,6 +7334,86 @@ module IbmVpc
7191
7334
  response
7192
7335
  end
7193
7336
 
7337
+ ##
7338
+ # @!method list_bare_metal_server_network_interface_ips(bare_metal_server_id:, network_interface_id:)
7339
+ # List all reserved IPs bound to a network interface.
7340
+ # This request lists all reserved IPs bound to a network interface.
7341
+ # @param bare_metal_server_id [String] The bare metal server identifier.
7342
+ # @param network_interface_id [String] The network interface identifier.
7343
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
7344
+ def list_bare_metal_server_network_interface_ips(bare_metal_server_id:, network_interface_id:)
7345
+ raise ArgumentError.new("version must be provided") if version.nil?
7346
+
7347
+ raise ArgumentError.new("generation must be provided") if generation.nil?
7348
+
7349
+ raise ArgumentError.new("bare_metal_server_id must be provided") if bare_metal_server_id.nil?
7350
+
7351
+ raise ArgumentError.new("network_interface_id must be provided") if network_interface_id.nil?
7352
+
7353
+ headers = {
7354
+ }
7355
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_bare_metal_server_network_interface_ips")
7356
+ headers.merge!(sdk_headers)
7357
+
7358
+ params = {
7359
+ "version" => @version,
7360
+ "generation" => @generation
7361
+ }
7362
+
7363
+ method_url = "/bare_metal_servers/%s/network_interfaces/%s/ips" % [ERB::Util.url_encode(bare_metal_server_id), ERB::Util.url_encode(network_interface_id)]
7364
+
7365
+ response = request(
7366
+ method: "GET",
7367
+ url: method_url,
7368
+ headers: headers,
7369
+ params: params,
7370
+ accept_json: true
7371
+ )
7372
+ response
7373
+ end
7374
+
7375
+ ##
7376
+ # @!method get_bare_metal_server_network_interface_ip(bare_metal_server_id:, network_interface_id:, id:)
7377
+ # Retrieve bound reserved IP.
7378
+ # This request a retrieves the specified reserved IP address if it is bound to the
7379
+ # network interface and bare metal server specified in the URL.
7380
+ # @param bare_metal_server_id [String] The bare metal server identifier.
7381
+ # @param network_interface_id [String] The network interface identifier.
7382
+ # @param id [String] The reserved IP identifier.
7383
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
7384
+ def get_bare_metal_server_network_interface_ip(bare_metal_server_id:, network_interface_id:, id:)
7385
+ raise ArgumentError.new("version must be provided") if version.nil?
7386
+
7387
+ raise ArgumentError.new("generation must be provided") if generation.nil?
7388
+
7389
+ raise ArgumentError.new("bare_metal_server_id must be provided") if bare_metal_server_id.nil?
7390
+
7391
+ raise ArgumentError.new("network_interface_id must be provided") if network_interface_id.nil?
7392
+
7393
+ raise ArgumentError.new("id must be provided") if id.nil?
7394
+
7395
+ headers = {
7396
+ }
7397
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "get_bare_metal_server_network_interface_ip")
7398
+ headers.merge!(sdk_headers)
7399
+
7400
+ params = {
7401
+ "version" => @version,
7402
+ "generation" => @generation
7403
+ }
7404
+
7405
+ method_url = "/bare_metal_servers/%s/network_interfaces/%s/ips/%s" % [ERB::Util.url_encode(bare_metal_server_id), ERB::Util.url_encode(network_interface_id), ERB::Util.url_encode(id)]
7406
+
7407
+ response = request(
7408
+ method: "GET",
7409
+ url: method_url,
7410
+ headers: headers,
7411
+ params: params,
7412
+ accept_json: true
7413
+ )
7414
+ response
7415
+ end
7416
+
7194
7417
  ##
7195
7418
  # @!method delete_bare_metal_server(id:)
7196
7419
  # Delete a bare metal server.
@@ -7471,8 +7694,10 @@ module IbmVpc
7471
7694
  ##
7472
7695
  # @!method list_volume_profiles(start: nil, limit: nil)
7473
7696
  # List all volume profiles.
7474
- # This request lists all volume profiles available in the region. A volume profile
7475
- # specifies the performance characteristics and pricing model for a volume.
7697
+ # This request lists all [volume
7698
+ # profiles](https://cloud.ibm.com/docs/vpc?topic=vpc-block-storage-profiles)
7699
+ # available in the region. A volume profile specifies the performance
7700
+ # characteristics and pricing model for a volume.
7476
7701
  # @param start [String] A server-provided token determining what resource to start the page on.
7477
7702
  # @param limit [Fixnum] The number of resources to return on a page.
7478
7703
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -7784,7 +8009,7 @@ module IbmVpc
7784
8009
  end
7785
8010
 
7786
8011
  ##
7787
- # @!method list_snapshots(start: nil, limit: nil, tag: nil, resource_group_id: nil, name: nil, source_volume_id: nil, source_volume_crn: nil, source_image_id: nil, source_image_crn: nil, sort: nil, backup_policy_plan_id: nil)
8012
+ # @!method list_snapshots(start: nil, limit: nil, tag: nil, resource_group_id: nil, name: nil, source_volume_id: nil, source_volume_crn: nil, source_image_id: nil, source_image_crn: nil, sort: nil, backup_policy_plan_id: nil, clones_zone_name: nil)
7788
8013
  # List all snapshots.
7789
8014
  # This request lists all snapshots in the region. A snapshot preserves the data of a
7790
8015
  # volume at the time the snapshot is created.
@@ -7815,8 +8040,9 @@ module IbmVpc
7815
8040
  # ascending order.
7816
8041
  # @param backup_policy_plan_id [String] Filters the collection to backup policy jobs with the backup plan with the
7817
8042
  # specified identifier.
8043
+ # @param clones_zone_name [String] Filters the collection to resources with a clone in the specified zone.
7818
8044
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
7819
- def list_snapshots(start: nil, limit: nil, tag: nil, resource_group_id: nil, name: nil, source_volume_id: nil, source_volume_crn: nil, source_image_id: nil, source_image_crn: nil, sort: nil, backup_policy_plan_id: nil)
8045
+ def list_snapshots(start: nil, limit: nil, tag: nil, resource_group_id: nil, name: nil, source_volume_id: nil, source_volume_crn: nil, source_image_id: nil, source_image_crn: nil, sort: nil, backup_policy_plan_id: nil, clones_zone_name: nil)
7820
8046
  raise ArgumentError.new("version must be provided") if version.nil?
7821
8047
 
7822
8048
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -7839,7 +8065,8 @@ module IbmVpc
7839
8065
  "source_image.id" => source_image_id,
7840
8066
  "source_image.crn" => source_image_crn,
7841
8067
  "sort" => sort,
7842
- "backup_policy_plan.id" => backup_policy_plan_id
8068
+ "backup_policy_plan.id" => backup_policy_plan_id,
8069
+ "clones[].zone.name" => clones_zone_name
7843
8070
  }
7844
8071
 
7845
8072
  method_url = "/snapshots"
@@ -8012,6 +8239,160 @@ module IbmVpc
8012
8239
  )
8013
8240
  response
8014
8241
  end
8242
+
8243
+ ##
8244
+ # @!method list_snapshot_clones(id:)
8245
+ # List all clones for a snapshot.
8246
+ # This request lists all clones for a snapshot. Use a clone to quickly restore a
8247
+ # snapshot within the clone's zone.
8248
+ # @param id [String] The snapshot identifier.
8249
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
8250
+ def list_snapshot_clones(id:)
8251
+ raise ArgumentError.new("version must be provided") if version.nil?
8252
+
8253
+ raise ArgumentError.new("generation must be provided") if generation.nil?
8254
+
8255
+ raise ArgumentError.new("id must be provided") if id.nil?
8256
+
8257
+ headers = {
8258
+ }
8259
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "list_snapshot_clones")
8260
+ headers.merge!(sdk_headers)
8261
+
8262
+ params = {
8263
+ "version" => @version,
8264
+ "generation" => @generation
8265
+ }
8266
+
8267
+ method_url = "/snapshots/%s/clones" % [ERB::Util.url_encode(id)]
8268
+
8269
+ response = request(
8270
+ method: "GET",
8271
+ url: method_url,
8272
+ headers: headers,
8273
+ params: params,
8274
+ accept_json: true
8275
+ )
8276
+ response
8277
+ end
8278
+
8279
+ ##
8280
+ # @!method delete_snapshot_clone(id:, zone_name:)
8281
+ # Delete a snapshot clone.
8282
+ # This request deletes a snapshot clone. This operation cannot be reversed, but an
8283
+ # equivalent clone may be recreated from the snapshot.
8284
+ # @param id [String] The snapshot identifier.
8285
+ # @param zone_name [String] The zone name.
8286
+ # @return [nil]
8287
+ def delete_snapshot_clone(id:, zone_name:)
8288
+ raise ArgumentError.new("version must be provided") if version.nil?
8289
+
8290
+ raise ArgumentError.new("generation must be provided") if generation.nil?
8291
+
8292
+ raise ArgumentError.new("id must be provided") if id.nil?
8293
+
8294
+ raise ArgumentError.new("zone_name must be provided") if zone_name.nil?
8295
+
8296
+ headers = {
8297
+ }
8298
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "delete_snapshot_clone")
8299
+ headers.merge!(sdk_headers)
8300
+
8301
+ params = {
8302
+ "version" => @version,
8303
+ "generation" => @generation
8304
+ }
8305
+
8306
+ method_url = "/snapshots/%s/clones/%s" % [ERB::Util.url_encode(id), ERB::Util.url_encode(zone_name)]
8307
+
8308
+ request(
8309
+ method: "DELETE",
8310
+ url: method_url,
8311
+ headers: headers,
8312
+ params: params,
8313
+ accept_json: false
8314
+ )
8315
+ nil
8316
+ end
8317
+
8318
+ ##
8319
+ # @!method get_snapshot_clone(id:, zone_name:)
8320
+ # Retrieve a snapshot clone.
8321
+ # This request retrieves a single clone specified by the snapshot identifier and
8322
+ # zone name in the URL.
8323
+ # @param id [String] The snapshot identifier.
8324
+ # @param zone_name [String] The zone name.
8325
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
8326
+ def get_snapshot_clone(id:, zone_name:)
8327
+ raise ArgumentError.new("version must be provided") if version.nil?
8328
+
8329
+ raise ArgumentError.new("generation must be provided") if generation.nil?
8330
+
8331
+ raise ArgumentError.new("id must be provided") if id.nil?
8332
+
8333
+ raise ArgumentError.new("zone_name must be provided") if zone_name.nil?
8334
+
8335
+ headers = {
8336
+ }
8337
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "get_snapshot_clone")
8338
+ headers.merge!(sdk_headers)
8339
+
8340
+ params = {
8341
+ "version" => @version,
8342
+ "generation" => @generation
8343
+ }
8344
+
8345
+ method_url = "/snapshots/%s/clones/%s" % [ERB::Util.url_encode(id), ERB::Util.url_encode(zone_name)]
8346
+
8347
+ response = request(
8348
+ method: "GET",
8349
+ url: method_url,
8350
+ headers: headers,
8351
+ params: params,
8352
+ accept_json: true
8353
+ )
8354
+ response
8355
+ end
8356
+
8357
+ ##
8358
+ # @!method create_snapshot_clone(id:, zone_name:)
8359
+ # Create a clone for a snapshot.
8360
+ # This request creates a new clone for a snapshot in the specified zone. A request
8361
+ # body is not required, and if provided, is ignored. If the snapshot already has a
8362
+ # clone in the zone, it is returned.
8363
+ # @param id [String] The snapshot identifier.
8364
+ # @param zone_name [String] The zone name.
8365
+ # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
8366
+ def create_snapshot_clone(id:, zone_name:)
8367
+ raise ArgumentError.new("version must be provided") if version.nil?
8368
+
8369
+ raise ArgumentError.new("generation must be provided") if generation.nil?
8370
+
8371
+ raise ArgumentError.new("id must be provided") if id.nil?
8372
+
8373
+ raise ArgumentError.new("zone_name must be provided") if zone_name.nil?
8374
+
8375
+ headers = {
8376
+ }
8377
+ sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "create_snapshot_clone")
8378
+ headers.merge!(sdk_headers)
8379
+
8380
+ params = {
8381
+ "version" => @version,
8382
+ "generation" => @generation
8383
+ }
8384
+
8385
+ method_url = "/snapshots/%s/clones/%s" % [ERB::Util.url_encode(id), ERB::Util.url_encode(zone_name)]
8386
+
8387
+ response = request(
8388
+ method: "PUT",
8389
+ url: method_url,
8390
+ headers: headers,
8391
+ params: params,
8392
+ accept_json: true
8393
+ )
8394
+ response
8395
+ end
8015
8396
  #########################
8016
8397
  # Geography
8017
8398
  #########################
@@ -8220,12 +8601,12 @@ module IbmVpc
8220
8601
  # provided, one will be created and bound to the public gateway. Once a public
8221
8602
  # gateway has been created, its floating IP cannot be unbound. A public gateway must
8222
8603
  # be explicitly attached to each subnet it will provide connectivity for.
8223
- # @param vpc [VPCIdentity] The VPC this public gateway will serve.
8604
+ # @param vpc [VPCIdentity] The VPC this public gateway will reside in.
8224
8605
  # @param zone [ZoneIdentity] The zone this public gateway will reside in.
8225
8606
  # @param floating_ip [PublicGatewayFloatingIPPrototype]
8226
- # @param name [String] The user-defined name for this public gateway. Names must be unique within the VPC
8227
- # the public gateway resides in. If unspecified, the name will be a hyphenated list
8228
- # of randomly-selected words.
8607
+ # @param name [String] The name for this public gateway. The name must not be used by another public
8608
+ # gateway in the VPC. If unspecified, the name will be a hyphenated list of
8609
+ # randomly-selected words.
8229
8610
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
8230
8611
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
8231
8612
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -8636,9 +9017,9 @@ module IbmVpc
8636
9017
  ##
8637
9018
  # @!method create_network_acl(network_acl_prototype: nil)
8638
9019
  # Create a network ACL.
8639
- # This request creates a new network ACL from a network ACL prototype object. The
8640
- # prototype object is structured in the same way as a retrieved network ACL, and
8641
- # contains the information necessary to create the new network ACL.
9020
+ # This request creates a new stateless network ACL from a network ACL prototype
9021
+ # object. The prototype object is structured in the same way as a retrieved network
9022
+ # ACL, and contains the information necessary to create the new network ACL.
8642
9023
  # @param network_acl_prototype [NetworkACLPrototype] The network ACL prototype object.
8643
9024
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
8644
9025
  def create_network_acl(network_acl_prototype: nil)
@@ -9059,10 +9440,10 @@ module IbmVpc
9059
9440
  # security group rules are included in the prototype object, those rules will be
9060
9441
  # added to the security group. Each security group is scoped to one VPC. Only
9061
9442
  # network interfaces on instances in that VPC can be added to the security group.
9062
- # @param vpc [VPCIdentity] The VPC this security group is to be a part of.
9063
- # @param name [String] The user-defined name for this security group. If unspecified, the name will be a
9064
- # hyphenated list of randomly-selected words. Names must be unique within the VPC
9065
- # the security group resides in.
9443
+ # @param vpc [VPCIdentity] The VPC this security group will reside in.
9444
+ # @param name [String] The name for this security group. The name must not be used by another security
9445
+ # group for the VPC. If unspecified, the name will be a hyphenated list of
9446
+ # randomly-selected words.
9066
9447
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
9067
9448
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
9068
9449
  # @param rules [Array[SecurityGroupRulePrototype]] The prototype objects for rules to be created for this security group. If
@@ -9482,7 +9863,8 @@ module IbmVpc
9482
9863
  # the target must be attached to at least one other security group. The specified
9483
9864
  # target identifier can be:
9484
9865
  #
9485
- # - A network interface identifier
9866
+ # - An instance network interface identifier
9867
+ # - A bare metal server network interface identifier
9486
9868
  # - A VPN server identifier
9487
9869
  # - An application load balancer identifier
9488
9870
  # - An endpoint gateway identifier
@@ -9568,7 +9950,8 @@ module IbmVpc
9568
9950
  # This request adds a resource to an existing security group. The specified target
9569
9951
  # identifier can be:
9570
9952
  #
9571
- # - A network interface identifier
9953
+ # - An instance network interface identifier
9954
+ # - A bare metal server network interface identifier
9572
9955
  # - A VPN server identifier
9573
9956
  # - An application load balancer identifier
9574
9957
  # - An endpoint gateway identifier
@@ -9652,12 +10035,20 @@ module IbmVpc
9652
10035
  # @!method create_ike_policy(authentication_algorithm:, dh_group:, encryption_algorithm:, ike_version:, key_lifetime: nil, name: nil, resource_group: nil)
9653
10036
  # Create an IKE policy.
9654
10037
  # This request creates a new IKE policy.
9655
- # @param authentication_algorithm [String] The authentication algorithm.
9656
- # @param dh_group [Fixnum] The Diffie-Hellman group.
9657
- # @param encryption_algorithm [String] The encryption algorithm.
10038
+ # @param authentication_algorithm [String] The authentication algorithm
10039
+ #
10040
+ # The `md5` and `sha1` algorithms have been deprecated.
10041
+ # @param dh_group [Fixnum] The Diffie-Hellman group
10042
+ #
10043
+ # Groups `2` and `5` have been deprecated.
10044
+ # @param encryption_algorithm [String] The encryption algorithm
10045
+ #
10046
+ # The `triple_des` algorithm has been deprecated.
9658
10047
  # @param ike_version [Fixnum] The IKE protocol version.
9659
10048
  # @param key_lifetime [Fixnum] The key lifetime in seconds.
9660
- # @param name [String] The user-defined name for this IKE policy.
10049
+ # @param name [String] The name for this IKE policy. The name must not be used by another IKE policies in
10050
+ # the region. If unspecified, the name will be a hyphenated list of
10051
+ # randomly-selected words.
9661
10052
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
9662
10053
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
9663
10054
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -9896,11 +10287,26 @@ module IbmVpc
9896
10287
  # @!method create_ipsec_policy(authentication_algorithm:, encryption_algorithm:, pfs:, key_lifetime: nil, name: nil, resource_group: nil)
9897
10288
  # Create an IPsec policy.
9898
10289
  # This request creates a new IPsec policy.
9899
- # @param authentication_algorithm [String] The authentication algorithm.
9900
- # @param encryption_algorithm [String] The encryption algorithm.
9901
- # @param pfs [String] Perfect Forward Secrecy.
10290
+ # @param authentication_algorithm [String] The authentication algorithm
10291
+ #
10292
+ # The `md5` and `sha1` algorithms have been deprecated
10293
+ #
10294
+ # Must be `disabled` if and only if the `encryption_algorithm` is
10295
+ # `aes128gcm16`, `aes192gcm16`, or `aes256gcm16`.
10296
+ # @param encryption_algorithm [String] The encryption algorithm
10297
+ #
10298
+ # The `triple_des` algorithm has been deprecated
10299
+ #
10300
+ # The `authentication_algorithm` must be `disabled` if and only if
10301
+ # `encryption_algorithm` is `aes128gcm16`, `aes192gcm16`, or
10302
+ # `aes256gcm16`.
10303
+ # @param pfs [String] Perfect Forward Secrecy
10304
+ #
10305
+ # Groups `group_2` and `group_5` have been deprecated.
9902
10306
  # @param key_lifetime [Fixnum] The key lifetime in seconds.
9903
- # @param name [String] The user-defined name for this IPsec policy.
10307
+ # @param name [String] The name for this IPsec policy. The name must not be used by another IPsec
10308
+ # policies in the region. If unspecified, the name will be a hyphenated list of
10309
+ # randomly-selected words.
9904
10310
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
9905
10311
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
9906
10312
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
@@ -10098,16 +10504,21 @@ module IbmVpc
10098
10504
  end
10099
10505
 
10100
10506
  ##
10101
- # @!method list_vpn_gateways(start: nil, limit: nil, resource_group_id: nil, mode: nil)
10507
+ # @!method list_vpn_gateways(start: nil, limit: nil, resource_group_id: nil, sort: nil, mode: nil)
10102
10508
  # List all VPN gateways.
10103
10509
  # This request lists all VPN gateways in the region.
10104
10510
  # @param start [String] A server-provided token determining what resource to start the page on.
10105
10511
  # @param limit [Fixnum] The number of resources to return on a page.
10106
10512
  # @param resource_group_id [String] Filters the collection to resources in the resource group with the specified
10107
10513
  # identifier.
10514
+ # @param sort [String] Sorts the returned collection by the specified property name in ascending order. A
10515
+ # `-` may be prepended to the name to sort in descending order. For example, the
10516
+ # value `-created_at` sorts the collection by the `created_at` property in
10517
+ # descending order, and the value `name` sorts it by the `name` property in
10518
+ # ascending order.
10108
10519
  # @param mode [String] Filters the collection to VPN gateways with the specified mode.
10109
10520
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
10110
- def list_vpn_gateways(start: nil, limit: nil, resource_group_id: nil, mode: nil)
10521
+ def list_vpn_gateways(start: nil, limit: nil, resource_group_id: nil, sort: nil, mode: nil)
10111
10522
  raise ArgumentError.new("version must be provided") if version.nil?
10112
10523
 
10113
10524
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -10123,6 +10534,7 @@ module IbmVpc
10123
10534
  "start" => start,
10124
10535
  "limit" => limit,
10125
10536
  "resource_group.id" => resource_group_id,
10537
+ "sort" => sort,
10126
10538
  "mode" => mode
10127
10539
  }
10128
10540
 
@@ -10935,9 +11347,9 @@ module IbmVpc
10935
11347
  # @param client_idle_timeout [Fixnum] The seconds a VPN client can be idle before this VPN server will disconnect it.
10936
11348
  # Specify `0` to prevent the server from disconnecting idle clients.
10937
11349
  # @param enable_split_tunneling [Boolean] Indicates whether the split tunneling is enabled on this VPN server.
10938
- # @param name [String] The user-defined name for this VPN server. If unspecified, the name will be a
10939
- # hyphenated list of randomly-selected words. Names must be unique within the VPC
10940
- # this VPN server is serving.
11350
+ # @param name [String] The name for this VPN server. The name must not be used by another VPN server in
11351
+ # the VPC. If unspecified, the name will be a hyphenated list of randomly-selected
11352
+ # words.
10941
11353
  # @param port [Fixnum] The port number to use for this VPN server.
10942
11354
  # @param protocol [String] The transport protocol to use for this VPN server.
10943
11355
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
@@ -11387,9 +11799,9 @@ module IbmVpc
11387
11799
  # processing this property, check for and log unknown values. Optionally halt
11388
11800
  # processing and surface the error, or bypass the VPN route on which the unexpected
11389
11801
  # property value was encountered.
11390
- # @param name [String] The user-defined name for this VPN route. If unspecified, the name will be a
11391
- # hyphenated list of randomly-selected words. Names must be unique within the VPN
11392
- # server the VPN route resides in.
11802
+ # @param name [String] The name for this VPN server route. The name must not be used by another route for
11803
+ # the VPN server. If unspecified, the name will be a hyphenated list of
11804
+ # randomly-selected words.
11393
11805
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
11394
11806
  def create_vpn_server_route(vpn_server_id:, destination:, action: nil, name: nil)
11395
11807
  raise ArgumentError.new("version must be provided") if version.nil?
@@ -11665,27 +12077,30 @@ module IbmVpc
11665
12077
  end
11666
12078
 
11667
12079
  ##
11668
- # @!method create_load_balancer(is_public:, subnets:, listeners: nil, logging: nil, name: nil, pools: nil, profile: nil, resource_group: nil, route_mode: nil, security_groups: nil)
12080
+ # @!method create_load_balancer(is_public:, subnets:, datapath: nil, listeners: nil, logging: nil, name: nil, pools: nil, profile: nil, resource_group: nil, route_mode: nil, security_groups: nil)
11669
12081
  # Create a load balancer.
11670
12082
  # This request creates and provisions a new load balancer.
11671
- # @param is_public [Boolean] Indicates whether this load balancer is public or private.
12083
+ # @param is_public [Boolean] Indicates whether this load balancer is public.
11672
12084
  #
11673
- # At present, if route mode is enabled, the load balancer must be private.
11674
- # @param subnets [Array[SubnetIdentity]] The subnets to provision this load balancer in. The load balancer's availability
11675
- # will depend on the availability of the zones the specified subnets reside in.
12085
+ # At present, if route mode is enabled, the load balancer must not be public.
12086
+ # @param subnets [Array[SubnetIdentity]] The subnets to provision this load balancer in. The subnets must be in the same
12087
+ # VPC. The load balancer's availability will depend on the availability of the zones
12088
+ # that the subnets reside in.
11676
12089
  #
11677
12090
  # Load balancers in the `network` family allow only one subnet to be specified.
12091
+ # @param datapath [LoadBalancerLoggingDatapathPrototype] The datapath logging configuration for this load balancer.
11678
12092
  # @param listeners [Array[LoadBalancerListenerPrototypeLoadBalancerContext]] The listeners of this load balancer.
11679
- # @param logging [LoadBalancerLogging] The logging configuration to use for this load balancer. See [VPC Datapath
11680
- # Logging](https://cloud.ibm.com/docs/vpc?topic=vpc-datapath-logging)
11681
- # on the logging format, fields and permitted values.
12093
+ # @param logging [LoadBalancerLoggingPrototype] The logging configuration to use for this load balancer. See [VPC Datapath
12094
+ # Logging](https://cloud.ibm.com/docs/vpc?topic=vpc-datapath-logging) on the logging
12095
+ # format, fields and permitted values.
11682
12096
  #
11683
12097
  # To activate logging, the load balancer profile must support the specified logging
11684
12098
  # type.
11685
- # @param name [String] The user-defined name for this load balancer. If unspecified, the name will be a
11686
- # hyphenated list of randomly-selected words.
12099
+ # @param name [String] The name for this load balancer. The name must not be used by another load
12100
+ # balancer in the VPC. If unspecified, the name will be a hyphenated list of
12101
+ # randomly-selected words.
11687
12102
  # @param pools [Array[LoadBalancerPoolPrototype]] The pools of this load balancer.
11688
- # @param profile [LoadBalancerProfileIdentity] The profile to use for this load balancer
12103
+ # @param profile [LoadBalancerProfileIdentity] The profile to use for this load balancer.
11689
12104
  #
11690
12105
  # If unspecified, `application` will be used.
11691
12106
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
@@ -11698,7 +12113,7 @@ module IbmVpc
11698
12113
  #
11699
12114
  # The load balancer profile must support security groups.
11700
12115
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
11701
- def create_load_balancer(is_public:, subnets:, listeners: nil, logging: nil, name: nil, pools: nil, profile: nil, resource_group: nil, route_mode: nil, security_groups: nil)
12116
+ def create_load_balancer(is_public:, subnets:, datapath: nil, listeners: nil, logging: nil, name: nil, pools: nil, profile: nil, resource_group: nil, route_mode: nil, security_groups: nil)
11702
12117
  raise ArgumentError.new("version must be provided") if version.nil?
11703
12118
 
11704
12119
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -11720,6 +12135,7 @@ module IbmVpc
11720
12135
  data = {
11721
12136
  "is_public" => is_public,
11722
12137
  "subnets" => subnets,
12138
+ "datapath" => datapath,
11723
12139
  "listeners" => listeners,
11724
12140
  "logging" => logging,
11725
12141
  "name" => name,
@@ -11744,13 +12160,15 @@ module IbmVpc
11744
12160
  end
11745
12161
 
11746
12162
  ##
11747
- # @!method delete_load_balancer(id:)
12163
+ # @!method delete_load_balancer(id:, if_match: nil)
11748
12164
  # Delete a load balancer.
11749
12165
  # This request deletes a load balancer. This operation cannot be reversed. A load
11750
12166
  # balancer cannot be deleted if its `provisioning_status` is `delete_pending`.
11751
12167
  # @param id [String] The load balancer identifier.
12168
+ # @param if_match [String] If present, the request will fail if the specified ETag value does not match the
12169
+ # resource's current ETag value.
11752
12170
  # @return [nil]
11753
- def delete_load_balancer(id:)
12171
+ def delete_load_balancer(id:, if_match: nil)
11754
12172
  raise ArgumentError.new("version must be provided") if version.nil?
11755
12173
 
11756
12174
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -11758,6 +12176,7 @@ module IbmVpc
11758
12176
  raise ArgumentError.new("id must be provided") if id.nil?
11759
12177
 
11760
12178
  headers = {
12179
+ "If-Match" => if_match
11761
12180
  }
11762
12181
  sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "delete_load_balancer")
11763
12182
  headers.merge!(sdk_headers)
@@ -11816,13 +12235,18 @@ module IbmVpc
11816
12235
  end
11817
12236
 
11818
12237
  ##
11819
- # @!method update_load_balancer(id:, load_balancer_patch:)
12238
+ # @!method update_load_balancer(id:, load_balancer_patch:, if_match: nil)
11820
12239
  # Update a load balancer.
11821
- # This request updates a load balancer.
12240
+ # This request updates a load balancer with the information in a provided load
12241
+ # balancer patch. The load balancer patch object is structured in the same way as a
12242
+ # retrieved load balancer and contains only the information to be updated. A load
12243
+ # balancer can only be updated if its `provisioning_status` is `active`.
11822
12244
  # @param id [String] The load balancer identifier.
11823
12245
  # @param load_balancer_patch [Hash] The load balancer patch.
12246
+ # @param if_match [String] If present, the request will fail if the specified ETag value does not match the
12247
+ # resource's current ETag value. Required if the request body includes an array.
11824
12248
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.
11825
- def update_load_balancer(id:, load_balancer_patch:)
12249
+ def update_load_balancer(id:, load_balancer_patch:, if_match: nil)
11826
12250
  raise ArgumentError.new("version must be provided") if version.nil?
11827
12251
 
11828
12252
  raise ArgumentError.new("generation must be provided") if generation.nil?
@@ -11832,6 +12256,7 @@ module IbmVpc
11832
12256
  raise ArgumentError.new("load_balancer_patch must be provided") if load_balancer_patch.nil?
11833
12257
 
11834
12258
  headers = {
12259
+ "If-Match" => if_match
11835
12260
  }
11836
12261
  sdk_headers = Common.new.get_sdk_headers("vpc", "V1", "update_load_balancer")
11837
12262
  headers.merge!(sdk_headers)
@@ -11933,10 +12358,16 @@ module IbmVpc
11933
12358
  # This request creates a new listener for a load balancer.
11934
12359
  # @param load_balancer_id [String] The load balancer identifier.
11935
12360
  # @param protocol [String] The listener protocol. Each listener in the load balancer must have a unique
11936
- # `port` and `protocol` combination. Additional restrictions:
11937
- # - If this load balancer is in the `network` family:
11938
- # - The protocol must be `tcp` or `udp` (if `udp_supported` is `true`).
11939
- # - If `default_pool` is set, the pool protocol must match.
12361
+ # `port` and `protocol` combination.
12362
+ #
12363
+ # Load balancers in the `network` family support `tcp` and `udp` (if `udp_supported`
12364
+ # is `true`). Load balancers in the `application` family support `tcp`, `http` and
12365
+ # `https`.
12366
+ #
12367
+ # Additional restrictions:
12368
+ # - If `default_pool` is set, the pool's protocol must match, or be compatible with
12369
+ # the listener's protocol. At present, the compatible protocols are `http` and
12370
+ # `https`.
11940
12371
  # - If `https_redirect` is set, the protocol must be `http`.
11941
12372
  # @param accept_proxy_protocol [Boolean] If set to `true`, this listener will accept and forward PROXY protocol
11942
12373
  # information. Supported by load balancers in the `application` family (otherwise
@@ -11947,19 +12378,21 @@ module IbmVpc
11947
12378
  # - If this listener is the target of another listener's `https_redirect`, its
11948
12379
  # `accept_proxy_protocol` value must match that listener's `accept_proxy_protocol`
11949
12380
  # value.
11950
- # @param certificate_instance [CertificateInstanceIdentity] The certificate instance used for SSL termination. It is applicable only to
11951
- # `https`
11952
- # protocol.
12381
+ # @param certificate_instance [CertificateInstanceIdentity] The certificate instance to use for SSL termination. The listener must have a
12382
+ # `protocol` of `https`.
11953
12383
  # @param connection_limit [Fixnum] The connection limit of the listener.
11954
- # @param default_pool [LoadBalancerPoolIdentity] The default pool for this listener. The specified pool must:
11955
- #
11956
- # - Belong to this load balancer
12384
+ # @param default_pool [LoadBalancerPoolIdentity] The default pool for this listener. If specified, the pool must:
12385
+ # - Belong to this load balancer.
11957
12386
  # - Have the same `protocol` as this listener, or have a compatible protocol.
11958
12387
  # At present, the compatible protocols are `http` and `https`.
11959
12388
  # - Not already be the `default_pool` for another listener.
12389
+ #
12390
+ # If unspecified, this listener will be created with no default pool, but one may be
12391
+ # subsequently set.
11960
12392
  # @param https_redirect [LoadBalancerListenerHTTPSRedirectPrototype] The target listener that requests will be redirected to. This listener must have a
11961
12393
  # `protocol` of `http`, and the target listener must have a `protocol` of `https`.
11962
- # @param policies [Array[LoadBalancerListenerPolicyPrototype]] The policy prototype objects for this listener.
12394
+ # @param policies [Array[LoadBalancerListenerPolicyPrototype]] The policy prototype objects for this listener. The load balancer must be in the
12395
+ # `application` family.
11963
12396
  # @param port [Fixnum] The listener port number, or the inclusive lower bound of the port range. Each
11964
12397
  # listener in the load balancer must have a unique `port` and `protocol`
11965
12398
  # combination.
@@ -12204,8 +12637,9 @@ module IbmVpc
12204
12637
  # processing and surface the error, or bypass the policy on which the unexpected
12205
12638
  # property value was encountered.
12206
12639
  # @param priority [Fixnum] Priority of the policy. Lower value indicates higher priority.
12207
- # @param name [String] The user-defined name for this policy. Names must be unique within the load
12208
- # balancer listener the policy resides in.
12640
+ # @param name [String] The name for this policy. The name must not be used by another policy for the load
12641
+ # balancer listener. If unspecified, the name will be a hyphenated list of
12642
+ # randomly-selected words.
12209
12643
  # @param rules [Array[LoadBalancerListenerPolicyRulePrototype]] The rule prototype objects for this policy.
12210
12644
  # @param target [LoadBalancerListenerPolicyTargetPrototype] - If `action` is `forward`, specify a `LoadBalancerPoolIdentity`.
12211
12645
  # - If `action` is `redirect`, specify a
@@ -12690,8 +13124,9 @@ module IbmVpc
12690
13124
  # @param members [Array[LoadBalancerPoolMemberPrototype]] The members for this load balancer pool. For load balancers in the `network`
12691
13125
  # family, the same `port` and `target` tuple cannot be shared by a pool member of
12692
13126
  # any other load balancer in the same VPC.
12693
- # @param name [String] The user-defined name for this load balancer pool. If unspecified, the name will
12694
- # be a hyphenated list of randomly-selected words.
13127
+ # @param name [String] The name for this load balancer pool. The name must not be used by another pool
13128
+ # for the load balancer. If unspecified, the name will be a hyphenated list of
13129
+ # randomly-selected words.
12695
13130
  # @param proxy_protocol [String] The PROXY protocol setting for this pool:
12696
13131
  # - `v1`: Enabled with version 1 (human-readable header format)
12697
13132
  # - `v2`: Enabled with version 2 (binary header format)
@@ -13203,13 +13638,15 @@ module IbmVpc
13203
13638
  # Create an endpoint gateway.
13204
13639
  # This request creates a new endpoint gateway. An endpoint gateway maps one or more
13205
13640
  # reserved IPs in a VPC to a target outside the VPC.
13206
- # @param target [EndpointGatewayTargetPrototype] The target for this endpoint gateway.
13207
- # @param vpc [VPCIdentity] The VPC this endpoint gateway will serve.
13641
+ # @param target [EndpointGatewayTargetPrototype] The target to use for this endpoint gateway. Must not already be the target of
13642
+ # another
13643
+ # endpoint gateway in the VPC.
13644
+ # @param vpc [VPCIdentity] The VPC this endpoint gateway will reside in.
13208
13645
  # @param ips [Array[EndpointGatewayReservedIP]] The reserved IPs to bind to this endpoint gateway. At most one reserved IP per
13209
13646
  # zone is allowed.
13210
- # @param name [String] The user-defined name for this endpoint gateway. If unspecified, the name will be
13211
- # a hyphenated list of randomly-selected words. Names must be unique within the VPC
13212
- # this endpoint gateway is serving.
13647
+ # @param name [String] The name for this endpoint gateway. The name must not be used by another endpoint
13648
+ # gateway in the VPC. If unspecified, the name will be a hyphenated list of
13649
+ # randomly-selected words.
13213
13650
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
13214
13651
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
13215
13652
  # @param security_groups [Array[SecurityGroupIdentity]] The security groups to use for this endpoint gateway. If unspecified, the VPC's
@@ -13613,8 +14050,9 @@ module IbmVpc
13613
14050
  # the
13614
14051
  # target that are themselves the target of a more specific flow log collector.
13615
14052
  # @param active [Boolean] Indicates whether this collector will be active upon creation.
13616
- # @param name [String] The unique user-defined name for this flow log collector. If unspecified, the name
13617
- # will be a hyphenated list of randomly-selected words.
14053
+ # @param name [String] The name for this flow log collector. The name must not be used by another flow
14054
+ # log collector in the region. If unspecified, the name will be a hyphenated list of
14055
+ # randomly-selected words.
13618
14056
  # @param resource_group [ResourceGroupIdentity] The resource group to use. If unspecified, the account's [default resource
13619
14057
  # group](https://cloud.ibm.com/apidocs/resource-manager#introduction) is used.
13620
14058
  # @return [IBMCloudSdkCore::DetailedResponse] A `IBMCloudSdkCore::DetailedResponse` object representing the response.