ibm-cloud-sdk 0.1.0 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +21 -0
- data/LICENSE.txt +202 -0
- data/README.md +1 -1
- data/ibm-cloud-sdk.gemspec +4 -1
- data/lib/ibm/cloud/sdk.rb +2 -0
- data/lib/ibm/cloud/sdk/power_iaas.rb +63 -1
- data/lib/ibm/cloud/sdk/resource_controller.rb +2 -8
- data/lib/ibm/cloud/sdk/version.rb +1 -1
- data/lib/ibm/cloud/sdk/vpc.rb +132 -0
- data/lib/ibm/cloud/sdk/vpc/base_collection.rb +108 -0
- data/lib/ibm/cloud/sdk/vpc/base_instance.rb +23 -0
- data/lib/ibm/cloud/sdk/vpc/base_vpc.rb +61 -0
- data/lib/ibm/cloud/sdk/vpc/cloud_sdk.rb +33 -0
- data/lib/ibm/cloud/sdk/vpc/floatingips.rb +20 -0
- data/lib/ibm/cloud/sdk/vpc/flowlogcollectors.rb +20 -0
- data/lib/ibm/cloud/sdk/vpc/helpers/connection.rb +66 -0
- data/lib/ibm/cloud/sdk/vpc/helpers/response.rb +92 -0
- data/lib/ibm/cloud/sdk/vpc/ike_policies.rb +24 -0
- data/lib/ibm/cloud/sdk/vpc/images.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/instance.rb +35 -0
- data/lib/ibm/cloud/sdk/vpc/instance/actions.rb +19 -0
- data/lib/ibm/cloud/sdk/vpc/instance/floating_ips.rb +23 -0
- data/lib/ibm/cloud/sdk/vpc/instance/network_interfaces.rb +53 -0
- data/lib/ibm/cloud/sdk/vpc/instance/volume_attachments.rb +46 -0
- data/lib/ibm/cloud/sdk/vpc/instance_profiles.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/instances.rb +20 -0
- data/lib/ibm/cloud/sdk/vpc/ipsec_policies.rb +24 -0
- data/lib/ibm/cloud/sdk/vpc/keys.rb +43 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancer.rb +23 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancer/listeners.rb +30 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancer/members.rb +23 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancer/policies.rb +30 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancer/pools.rb +28 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancer/rules.rb +25 -0
- data/lib/ibm/cloud/sdk/vpc/load_balancers.rb +19 -0
- data/lib/ibm/cloud/sdk/vpc/network_acls.rb +39 -0
- data/lib/ibm/cloud/sdk/vpc/operating_systems.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/public_gateways.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/regions.rb +35 -0
- data/lib/ibm/cloud/sdk/vpc/security_groups.rb +48 -0
- data/lib/ibm/cloud/sdk/vpc/subnets.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/volume_profiles.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/volumes.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/vpcs.rb +60 -0
- data/lib/ibm/cloud/sdk/vpc/vpn_gateway/connections.rb +35 -0
- data/lib/ibm/cloud/sdk/vpc/vpn_gateway/local_cidrs.rb +32 -0
- data/lib/ibm/cloud/sdk/vpc/vpn_gateway/peer_cidrs.rb +32 -0
- data/lib/ibm/cloud/sdk/vpc/vpn_gateways.rb +25 -0
- metadata +61 -3
@@ -0,0 +1,25 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
module LOADBALANCER
|
9
|
+
# A list of Rule
|
10
|
+
class Rules < BaseCollection
|
11
|
+
def initialize(parent)
|
12
|
+
@array_key = 'rules'
|
13
|
+
@instance = Rule
|
14
|
+
super(parent, @array_key)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
# A single Rule
|
19
|
+
class Rule < BaseInstance
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative 'load_balancer'
|
5
|
+
|
6
|
+
module IBM
|
7
|
+
module Cloud
|
8
|
+
module SDK
|
9
|
+
module VPC
|
10
|
+
# A list of LoadBalancer
|
11
|
+
class LoadBalancers < BaseCollection
|
12
|
+
def initialize(parent)
|
13
|
+
super(parent, 'load_balancers', child_class: LoadBalancer)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# A list of NetworkACL
|
9
|
+
class NetworkACLs < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'network_acls', child_class: NetworkACL)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# A single NetworkACL
|
16
|
+
class NetworkACL < BaseInstance
|
17
|
+
def rules
|
18
|
+
NETWORKACL::Rules.new(self)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module NETWORKACL
|
23
|
+
# A list of NetworkACL
|
24
|
+
class Rules < BaseCollection
|
25
|
+
def initialize(parent)
|
26
|
+
@array_key = 'network_acls'
|
27
|
+
@instance = NetworkACL
|
28
|
+
super(parent, @array_key)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
# A single NetworkACL
|
33
|
+
class Rule < BaseInstance
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# A list of OperatingSystem
|
9
|
+
class OperatingSystems < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'operating_systems', child_class: OperatingSystem)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# A single OperatingSystem
|
16
|
+
class OperatingSystem < BaseInstance
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# A list of PublicGateway
|
9
|
+
class PublicGateways < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'public_gateways', child_class: PublicGateway)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# A single PublicGateway
|
16
|
+
class PublicGateway < BaseInstance
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# Work with VPC reqions
|
9
|
+
class Regions < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'regions', child_class: Region)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Work with a single region
|
16
|
+
class Region < BaseInstance
|
17
|
+
def zones
|
18
|
+
Zones.new(self)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# Zones are included within a region.
|
23
|
+
class Zones < BaseCollection
|
24
|
+
def initialize(parent)
|
25
|
+
super(parent, 'zones', child_class: Zone)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# A single zone.
|
30
|
+
class Zone < BaseVPC
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# Work with VPC reqions
|
9
|
+
class SecurityGroups < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'security_groups', child_class: SecurityGroup)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Work with VPC reqions
|
16
|
+
class SecurityGroup < BaseCollection
|
17
|
+
def network_interfaces
|
18
|
+
SECURITYGROUP::NetworkInterfaces.new(self)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
module SECURITYGROUP
|
23
|
+
# Work with interfaces associated with parent group.
|
24
|
+
class NetworkInterfaces < BaseCollection
|
25
|
+
def initialize(parent)
|
26
|
+
super(parent, 'network_interfaces', child_class: NetworkInterface)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Work with a single rule.
|
31
|
+
class NetworkInterface < BaseInstance
|
32
|
+
end
|
33
|
+
|
34
|
+
# Work with rules associated with parent group.
|
35
|
+
class Rules < BaseCollection
|
36
|
+
def initialize(parent)
|
37
|
+
super(parent, 'rules', child_class: Rule)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
# Work with a single rule.
|
42
|
+
class Rule < BaseInstance
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# A list of submetes
|
9
|
+
class Subnets < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'subnets', child_class: Subnet)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# A single subnet
|
16
|
+
class Subnet < BaseInstance
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# Work with Volume Profiles.
|
9
|
+
class VolumeProfiles < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'volume/profiles', child_class: VolumeProfile, array_key: 'profiles')
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Work with a single volume profile.
|
16
|
+
class VolumeProfile < BaseInstance
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# Work with a collection of volumes.
|
9
|
+
class Volumes < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'volumes', child_class: Volume)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Work with a single volume.
|
16
|
+
class Volume < BaseInstance
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,60 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# A list of Vpc
|
9
|
+
class Vpcs < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'vpcs', child_class: VpcInstance)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# A single Vpc
|
16
|
+
class VpcInstance < BaseInstance
|
17
|
+
def default_network_acl
|
18
|
+
get('default_network_acl')
|
19
|
+
end
|
20
|
+
|
21
|
+
def default_security_group
|
22
|
+
get('default_security_group')
|
23
|
+
end
|
24
|
+
|
25
|
+
def address_prefixes
|
26
|
+
VPCS::AddressPrefixes.new(self)
|
27
|
+
end
|
28
|
+
|
29
|
+
def routes
|
30
|
+
VPCS::Routes.new(self)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
module VPCS
|
35
|
+
# A list of Vpc
|
36
|
+
class AddressPrefixes < BaseCollection
|
37
|
+
def initialize(parent)
|
38
|
+
super(parent, 'address_prefixes', child_class: AddressPrefix)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
# A single Vpc
|
43
|
+
class AddressPrefix < BaseInstance
|
44
|
+
end
|
45
|
+
|
46
|
+
# A list of Vpc
|
47
|
+
class Routes < BaseCollection
|
48
|
+
def initialize(parent)
|
49
|
+
super(parent, 'routes', child_class: Route)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
# A single Vpc
|
54
|
+
class Route < BaseInstance
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative('local_cidrs')
|
5
|
+
require_relative('peer_cidrs')
|
6
|
+
|
7
|
+
module IBM
|
8
|
+
module Cloud
|
9
|
+
module SDK
|
10
|
+
module VPC
|
11
|
+
module VPNGATEWAY
|
12
|
+
# A list of Connection
|
13
|
+
class Connections < BaseCollection
|
14
|
+
def initialize(parent)
|
15
|
+
@array_key = 'connections'
|
16
|
+
@instance = Connection
|
17
|
+
super(parent, @array_key)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# A single Connection
|
22
|
+
class Connection < BaseInstance
|
23
|
+
def local_cidrs
|
24
|
+
LocalCIDRs.new(self)
|
25
|
+
end
|
26
|
+
|
27
|
+
def peer_cidrs
|
28
|
+
PeerCIDRs.new(self)
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
module VPNGATEWAY
|
9
|
+
# A list of Connection
|
10
|
+
class LocalCIDRs < BaseCollection
|
11
|
+
def initialize(parent)
|
12
|
+
@array_key = 'local_cidrs'
|
13
|
+
@instance = Connection
|
14
|
+
super(parent, @array_key)
|
15
|
+
end
|
16
|
+
|
17
|
+
def instance(cidr_prefix, prefix_length)
|
18
|
+
super(self, "#{cidr_prefix}/#{prefix_length}")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# A single Connection
|
23
|
+
class LocalCIDR < BaseInstance
|
24
|
+
def update(payload)
|
25
|
+
put(payload)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
module VPNGATEWAY
|
9
|
+
# A list of Connection
|
10
|
+
class PeerCIDRs < BaseCollection
|
11
|
+
def initialize(parent)
|
12
|
+
@array_key = 'peer_cidrs'
|
13
|
+
@instance = Connection
|
14
|
+
super(parent, @array_key)
|
15
|
+
end
|
16
|
+
|
17
|
+
def instance(cidr_prefix, prefix_length)
|
18
|
+
super(self, "#{cidr_prefix}/#{prefix_length}")
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
# A single Connection
|
23
|
+
class PeerCIDR < BaseInstance
|
24
|
+
def update(payload)
|
25
|
+
put(payload)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|