ibm-cloud-sdk 0.1.2 → 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +32 -0
- data/Gemfile +2 -0
- data/ibm-cloud-sdk.gemspec +3 -1
- data/lib/ibm/cloud/sdk.rb +3 -0
- data/lib/ibm/cloud/sdk/logging.rb +21 -0
- data/lib/ibm/cloud/sdk/null_logger.rb +19 -0
- data/lib/ibm/cloud/sdk/power_iaas.rb +181 -4
- 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 +133 -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/exceptions.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 +96 -0
- data/lib/ibm/cloud/sdk/vpc/helpers/response.rb +134 -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/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 +28 -0
- data/lib/ibm/cloud/sdk/vpc/instance/volume_attachments.rb +23 -0
- data/lib/ibm/cloud/sdk/vpc/instance_profiles.rb +21 -0
- data/lib/ibm/cloud/sdk/vpc/instances.rb +64 -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 +60 -2
@@ -0,0 +1,24 @@
|
|
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 IPSecPolicy
|
9
|
+
class IPSecPolicies < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'ike_policies', child_class: IPSecPolicy)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# A single IPSecPolicy
|
16
|
+
class IPSecPolicy < BaseInstance
|
17
|
+
def connections
|
18
|
+
get('connections')
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,43 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
module IBM
|
5
|
+
module Cloud
|
6
|
+
module SDK
|
7
|
+
module VPC
|
8
|
+
# A collection of SSH keys.
|
9
|
+
class Keys < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
super(parent, 'keys', child_class: Key)
|
12
|
+
end
|
13
|
+
|
14
|
+
def fetch(resource_id: nil)
|
15
|
+
params = {}
|
16
|
+
params['resource_group.id'] = resource_id if resource_id
|
17
|
+
get(params: params)
|
18
|
+
end
|
19
|
+
|
20
|
+
def all(resource_id = nil)
|
21
|
+
fetch(resource_id: resource_id).subkey(@array_key)
|
22
|
+
end
|
23
|
+
|
24
|
+
# :reek:FeatureEnvy
|
25
|
+
def create(name, public_key, resource_group: nil, type: nil)
|
26
|
+
payload = { name: name, public_key: public_key }
|
27
|
+
payload[:resource_group] = resource_group if resource_group
|
28
|
+
payload[:type] = type if type
|
29
|
+
post(payload)
|
30
|
+
end
|
31
|
+
|
32
|
+
def key(id)
|
33
|
+
Key.new(self, id)
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
# A single key.
|
38
|
+
class Key < BaseInstance
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative('load_balancer/listeners')
|
5
|
+
|
6
|
+
module IBM
|
7
|
+
module Cloud
|
8
|
+
module SDK
|
9
|
+
module VPC
|
10
|
+
# A single LoadBalancer
|
11
|
+
class LoadBalancer < BaseInstance
|
12
|
+
def statistics
|
13
|
+
get('statistics')
|
14
|
+
end
|
15
|
+
|
16
|
+
def listeners
|
17
|
+
LOADBALANCER::Listeners.new(self)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative('policies')
|
5
|
+
|
6
|
+
module IBM
|
7
|
+
module Cloud
|
8
|
+
module SDK
|
9
|
+
module VPC
|
10
|
+
module LOADBALANCER
|
11
|
+
# A list of Listener
|
12
|
+
class Listeners < BaseCollection
|
13
|
+
def initialize(parent)
|
14
|
+
@array_key = 'listeners'
|
15
|
+
@instance = Listener
|
16
|
+
super(parent, @array_key)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# A single Listener
|
21
|
+
class Listener < BaseInstance
|
22
|
+
def policies
|
23
|
+
LOADBALANCER::Policies.new(self)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,23 @@
|
|
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 Member
|
9
|
+
class Members < BaseCollection
|
10
|
+
def initialize(parent)
|
11
|
+
@array_key = 'members'
|
12
|
+
@instance = Member
|
13
|
+
super(parent, @array_key)
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
# A single Member
|
18
|
+
class Member < BaseInstance
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative('rules')
|
5
|
+
|
6
|
+
module IBM
|
7
|
+
module Cloud
|
8
|
+
module SDK
|
9
|
+
module VPC
|
10
|
+
module LOADBALANCER
|
11
|
+
# A list of Policies
|
12
|
+
class Policies < BaseCollection
|
13
|
+
def initialize(parent)
|
14
|
+
@array_key = 'policies'
|
15
|
+
@instance = Policy
|
16
|
+
super(parent, @array_key)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# A single Policy
|
21
|
+
class Policy < BaseInstance
|
22
|
+
def rules
|
23
|
+
Rules.new(self)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# typed: true
|
2
|
+
# frozen_string_literal: true
|
3
|
+
|
4
|
+
require_relative('members')
|
5
|
+
|
6
|
+
module IBM
|
7
|
+
module Cloud
|
8
|
+
module SDK
|
9
|
+
module VPC
|
10
|
+
# A list of Pool
|
11
|
+
class Pools < BaseCollection
|
12
|
+
def initialize(parent)
|
13
|
+
@array_key = 'pools'
|
14
|
+
@instance = Pool
|
15
|
+
super(parent, @array_key)
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
# A single Pool
|
20
|
+
class Pool < BaseInstance
|
21
|
+
def members
|
22
|
+
Members.new(self)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -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 < BaseInstance
|
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
|