ibm_vpc 0.5.0 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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.