fog-scaleway 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +9 -0
- data/.ruby-version +1 -0
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +58 -0
- data/Rakefile +21 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/fog-scaleway.gemspec +31 -0
- data/lib/fog/scaleway.rb +15 -0
- data/lib/fog/scaleway/account.rb +306 -0
- data/lib/fog/scaleway/client.rb +54 -0
- data/lib/fog/scaleway/compute.rb +350 -0
- data/lib/fog/scaleway/errors.rb +37 -0
- data/lib/fog/scaleway/models/account/organization.rb +42 -0
- data/lib/fog/scaleway/models/account/organizations.rb +22 -0
- data/lib/fog/scaleway/models/account/token.rb +60 -0
- data/lib/fog/scaleway/models/account/tokens.rb +22 -0
- data/lib/fog/scaleway/models/account/user.rb +69 -0
- data/lib/fog/scaleway/models/account/users.rb +23 -0
- data/lib/fog/scaleway/models/compute/bootscript.rb +19 -0
- data/lib/fog/scaleway/models/compute/bootscripts.rb +22 -0
- data/lib/fog/scaleway/models/compute/image.rb +83 -0
- data/lib/fog/scaleway/models/compute/images.rb +22 -0
- data/lib/fog/scaleway/models/compute/ip.rb +70 -0
- data/lib/fog/scaleway/models/compute/ips.rb +22 -0
- data/lib/fog/scaleway/models/compute/security_group.rb +77 -0
- data/lib/fog/scaleway/models/compute/security_group_rule.rb +59 -0
- data/lib/fog/scaleway/models/compute/security_group_rules.rb +34 -0
- data/lib/fog/scaleway/models/compute/security_groups.rb +22 -0
- data/lib/fog/scaleway/models/compute/server.rb +243 -0
- data/lib/fog/scaleway/models/compute/servers.rb +47 -0
- data/lib/fog/scaleway/models/compute/snapshot.rb +90 -0
- data/lib/fog/scaleway/models/compute/snapshots.rb +22 -0
- data/lib/fog/scaleway/models/compute/task.rb +31 -0
- data/lib/fog/scaleway/models/compute/tasks.rb +22 -0
- data/lib/fog/scaleway/models/compute/volume.rb +96 -0
- data/lib/fog/scaleway/models/compute/volumes.rb +22 -0
- data/lib/fog/scaleway/request_helper.rb +32 -0
- data/lib/fog/scaleway/requests/account/create_token.rb +62 -0
- data/lib/fog/scaleway/requests/account/delete_token.rb +21 -0
- data/lib/fog/scaleway/requests/account/get_organization.rb +19 -0
- data/lib/fog/scaleway/requests/account/get_organization_quotas.rb +21 -0
- data/lib/fog/scaleway/requests/account/get_token.rb +19 -0
- data/lib/fog/scaleway/requests/account/get_token_permissions.rb +21 -0
- data/lib/fog/scaleway/requests/account/get_user.rb +19 -0
- data/lib/fog/scaleway/requests/account/list_organizations.rb +19 -0
- data/lib/fog/scaleway/requests/account/list_tokens.rb +19 -0
- data/lib/fog/scaleway/requests/account/update_token.rb +27 -0
- data/lib/fog/scaleway/requests/account/update_user.rb +39 -0
- data/lib/fog/scaleway/requests/compute/create_image.rb +61 -0
- data/lib/fog/scaleway/requests/compute/create_ip.rb +68 -0
- data/lib/fog/scaleway/requests/compute/create_security_group.rb +49 -0
- data/lib/fog/scaleway/requests/compute/create_security_group_rule.rb +49 -0
- data/lib/fog/scaleway/requests/compute/create_server.rb +129 -0
- data/lib/fog/scaleway/requests/compute/create_snapshot.rb +54 -0
- data/lib/fog/scaleway/requests/compute/create_volume.rb +88 -0
- data/lib/fog/scaleway/requests/compute/delete_image.rb +27 -0
- data/lib/fog/scaleway/requests/compute/delete_ip.rb +29 -0
- data/lib/fog/scaleway/requests/compute/delete_security_group.rb +31 -0
- data/lib/fog/scaleway/requests/compute/delete_security_group_rule.rb +23 -0
- data/lib/fog/scaleway/requests/compute/delete_server.rb +40 -0
- data/lib/fog/scaleway/requests/compute/delete_snapshot.rb +29 -0
- data/lib/fog/scaleway/requests/compute/delete_task.rb +21 -0
- data/lib/fog/scaleway/requests/compute/delete_user_data.rb +21 -0
- data/lib/fog/scaleway/requests/compute/delete_volume.rb +31 -0
- data/lib/fog/scaleway/requests/compute/execute_server_action.rb +101 -0
- data/lib/fog/scaleway/requests/compute/get_bootscript.rb +19 -0
- data/lib/fog/scaleway/requests/compute/get_container.rb +19 -0
- data/lib/fog/scaleway/requests/compute/get_dashboard.rb +37 -0
- data/lib/fog/scaleway/requests/compute/get_image.rb +19 -0
- data/lib/fog/scaleway/requests/compute/get_ip.rb +19 -0
- data/lib/fog/scaleway/requests/compute/get_security_group.rb +19 -0
- data/lib/fog/scaleway/requests/compute/get_security_group_rule.rb +23 -0
- data/lib/fog/scaleway/requests/compute/get_server.rb +48 -0
- data/lib/fog/scaleway/requests/compute/get_snapshot.rb +19 -0
- data/lib/fog/scaleway/requests/compute/get_task.rb +25 -0
- data/lib/fog/scaleway/requests/compute/get_user_data.rb +25 -0
- data/lib/fog/scaleway/requests/compute/get_volume.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_bootscripts.rb +23 -0
- data/lib/fog/scaleway/requests/compute/list_containers.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_images.rb +27 -0
- data/lib/fog/scaleway/requests/compute/list_ips.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_security_group_rules.rb +21 -0
- data/lib/fog/scaleway/requests/compute/list_security_groups.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_server_actions.rb +21 -0
- data/lib/fog/scaleway/requests/compute/list_servers.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_snapshots.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_tasks.rb +19 -0
- data/lib/fog/scaleway/requests/compute/list_user_data.rb +21 -0
- data/lib/fog/scaleway/requests/compute/list_volumes.rb +19 -0
- data/lib/fog/scaleway/requests/compute/update_image.rb +31 -0
- data/lib/fog/scaleway/requests/compute/update_ip.rb +47 -0
- data/lib/fog/scaleway/requests/compute/update_security_group.rb +29 -0
- data/lib/fog/scaleway/requests/compute/update_security_group_rule.rb +31 -0
- data/lib/fog/scaleway/requests/compute/update_server.rb +71 -0
- data/lib/fog/scaleway/requests/compute/update_snapshot.rb +24 -0
- data/lib/fog/scaleway/requests/compute/update_user_data.rb +25 -0
- data/lib/fog/scaleway/requests/compute/update_volume.rb +24 -0
- data/lib/fog/scaleway/version.rb +5 -0
- metadata +285 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Account
|
|
4
|
+
class Organizations < Fog::Collection
|
|
5
|
+
model Fog::Scaleway::Account::Organization
|
|
6
|
+
|
|
7
|
+
def all
|
|
8
|
+
organizations = service.list_organizations.body['organizations'] || []
|
|
9
|
+
load(organizations)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get(identity)
|
|
13
|
+
if (organization = service.get_organization(identity).body['organization'])
|
|
14
|
+
new(organization)
|
|
15
|
+
end
|
|
16
|
+
rescue Fog::Scaleway::Account::UnknownResource
|
|
17
|
+
nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Account
|
|
4
|
+
class Token < Fog::Model
|
|
5
|
+
identity :id
|
|
6
|
+
|
|
7
|
+
attribute :creation_date
|
|
8
|
+
attribute :description
|
|
9
|
+
attribute :expires
|
|
10
|
+
attribute :inherits_user_perms
|
|
11
|
+
attribute :roles
|
|
12
|
+
attribute :user_id
|
|
13
|
+
|
|
14
|
+
def save
|
|
15
|
+
if persisted?
|
|
16
|
+
update
|
|
17
|
+
else
|
|
18
|
+
create
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def destroy
|
|
23
|
+
requires :identity
|
|
24
|
+
|
|
25
|
+
service.delete_token(identity)
|
|
26
|
+
true
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
def create
|
|
32
|
+
options = {}
|
|
33
|
+
options[:expires] = !!expires unless expires.nil?
|
|
34
|
+
|
|
35
|
+
if (token = service.create_token(options).body['token'])
|
|
36
|
+
merge_attributes(token)
|
|
37
|
+
true
|
|
38
|
+
else
|
|
39
|
+
false
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
def update
|
|
44
|
+
requires :identity
|
|
45
|
+
|
|
46
|
+
options = {}
|
|
47
|
+
options[:description] = description unless description.nil?
|
|
48
|
+
options[:expires] = !!expires unless expires.nil?
|
|
49
|
+
|
|
50
|
+
if (token = service.update_token(identity, options).body['token'])
|
|
51
|
+
merge_attributes(token)
|
|
52
|
+
true
|
|
53
|
+
else
|
|
54
|
+
false
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Account
|
|
4
|
+
class Tokens < Fog::Collection
|
|
5
|
+
model Fog::Scaleway::Account::Token
|
|
6
|
+
|
|
7
|
+
def all
|
|
8
|
+
tokens = service.list_tokens.body['tokens'] || []
|
|
9
|
+
load(tokens)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get(identity)
|
|
13
|
+
if (token = service.get_token(identity).body['token'])
|
|
14
|
+
new(token)
|
|
15
|
+
end
|
|
16
|
+
rescue Fog::Scaleway::Account::UnknownResource
|
|
17
|
+
nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Account
|
|
4
|
+
class User < Fog::Model
|
|
5
|
+
identity :id
|
|
6
|
+
|
|
7
|
+
attribute :creation_date
|
|
8
|
+
attribute :email
|
|
9
|
+
attribute :firstname
|
|
10
|
+
attribute :fullname
|
|
11
|
+
attribute :lastname
|
|
12
|
+
attribute :modification_date
|
|
13
|
+
attribute :organizations
|
|
14
|
+
attribute :phone_number
|
|
15
|
+
attribute :roles
|
|
16
|
+
attribute :ssh_public_keys
|
|
17
|
+
|
|
18
|
+
def organizations=(value)
|
|
19
|
+
attributes[:organizations] = value.map do |v|
|
|
20
|
+
case v
|
|
21
|
+
when Hash
|
|
22
|
+
service.organizations.new(v)
|
|
23
|
+
when String
|
|
24
|
+
service.organizations.new(identity: v)
|
|
25
|
+
else
|
|
26
|
+
v
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def save
|
|
32
|
+
if persisted?
|
|
33
|
+
update
|
|
34
|
+
else
|
|
35
|
+
create
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
private
|
|
40
|
+
|
|
41
|
+
def create
|
|
42
|
+
raise Fog::Errors::NotImplemented
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def update
|
|
46
|
+
requires :identity
|
|
47
|
+
|
|
48
|
+
options = {}
|
|
49
|
+
options[:firstname] = firstname unless firstname.nil?
|
|
50
|
+
options[:lastname] = lastname unless lastname.nil?
|
|
51
|
+
options[:phone_number] = phone_number unless phone_number.nil?
|
|
52
|
+
|
|
53
|
+
unless ssh_public_keys.nil?
|
|
54
|
+
options[:ssh_public_keys] = ssh_public_keys.map do |k|
|
|
55
|
+
{ 'key' => k['key'] }
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
if (user = service.update_user(identity, options).body['user'])
|
|
60
|
+
merge_attributes(user)
|
|
61
|
+
true
|
|
62
|
+
else
|
|
63
|
+
false
|
|
64
|
+
end
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Account
|
|
4
|
+
class Users < Fog::Collection
|
|
5
|
+
model Fog::Scaleway::Account::User
|
|
6
|
+
|
|
7
|
+
def all
|
|
8
|
+
organizations = service.list_organizations.body['organizations'] || []
|
|
9
|
+
users = organizations.flat_map { |o| o['users'] }
|
|
10
|
+
load(users)
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
def get(identity)
|
|
14
|
+
if (user = service.get_user(identity).body['user'])
|
|
15
|
+
new(user)
|
|
16
|
+
end
|
|
17
|
+
rescue Fog::Scaleway::Account::UnknownResource
|
|
18
|
+
nil
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Compute
|
|
4
|
+
class Bootscript < Fog::Model
|
|
5
|
+
identity :id
|
|
6
|
+
|
|
7
|
+
attribute :kernel
|
|
8
|
+
attribute :initrd
|
|
9
|
+
attribute :default
|
|
10
|
+
attribute :bootcmdargs
|
|
11
|
+
attribute :architecture
|
|
12
|
+
attribute :title
|
|
13
|
+
attribute :dtb
|
|
14
|
+
attribute :organization
|
|
15
|
+
attribute :public
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Compute
|
|
4
|
+
class Bootscripts < Fog::Collection
|
|
5
|
+
model Fog::Scaleway::Compute::Bootscript
|
|
6
|
+
|
|
7
|
+
def all
|
|
8
|
+
bootscripts = service.list_bootscripts.body['bootscripts'] || []
|
|
9
|
+
load(bootscripts)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get(identity)
|
|
13
|
+
if (bootscript = service.get_bootscript(identity).body['bootscript'])
|
|
14
|
+
new(bootscript)
|
|
15
|
+
end
|
|
16
|
+
rescue Fog::Scaleway::Compute::UnknownResource
|
|
17
|
+
nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Compute
|
|
4
|
+
class Image < Fog::Model
|
|
5
|
+
identity :id
|
|
6
|
+
|
|
7
|
+
attribute :default_bootscript
|
|
8
|
+
attribute :creation_date
|
|
9
|
+
attribute :name
|
|
10
|
+
attribute :modification_date
|
|
11
|
+
attribute :organization
|
|
12
|
+
# attribute :extra_volumes
|
|
13
|
+
attribute :arch
|
|
14
|
+
attribute :root_volume
|
|
15
|
+
attribute :public
|
|
16
|
+
|
|
17
|
+
def default_bootscript=(value)
|
|
18
|
+
attributes[:default_bootscript] = case value
|
|
19
|
+
when Hash
|
|
20
|
+
service.bootscripts.new(value)
|
|
21
|
+
when String
|
|
22
|
+
service.bootscripts.new(identity: value)
|
|
23
|
+
else
|
|
24
|
+
value
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def root_volume=(value)
|
|
29
|
+
attributes[:root_volume] = case value
|
|
30
|
+
when Hash
|
|
31
|
+
service.snapshots.new(value)
|
|
32
|
+
when String
|
|
33
|
+
service.snapshots.new(identity: value)
|
|
34
|
+
else
|
|
35
|
+
value
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
def save
|
|
40
|
+
if persisted?
|
|
41
|
+
update
|
|
42
|
+
else
|
|
43
|
+
create
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
def destroy
|
|
48
|
+
requires :identity
|
|
49
|
+
|
|
50
|
+
service.delete_image(identity)
|
|
51
|
+
true
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
private
|
|
55
|
+
|
|
56
|
+
def create
|
|
57
|
+
requires :name, :arch, :root_volume
|
|
58
|
+
|
|
59
|
+
options = {}
|
|
60
|
+
options[:default_bootscript] = default_bootscript.identity unless default_bootscript.nil?
|
|
61
|
+
|
|
62
|
+
if (image = service.create_image(name, arch, root_volume.identity, options).body['image'])
|
|
63
|
+
merge_attributes(image)
|
|
64
|
+
true
|
|
65
|
+
else
|
|
66
|
+
false
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
def update
|
|
71
|
+
requires :identity
|
|
72
|
+
|
|
73
|
+
if (image = service.update_image(identity, self).body['image'])
|
|
74
|
+
merge_attributes(image)
|
|
75
|
+
true
|
|
76
|
+
else
|
|
77
|
+
false
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
end
|
|
83
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Compute
|
|
4
|
+
class Images < Fog::Collection
|
|
5
|
+
model Fog::Scaleway::Compute::Image
|
|
6
|
+
|
|
7
|
+
def all
|
|
8
|
+
images = service.list_images.body['images'] || []
|
|
9
|
+
load(images)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get(identity)
|
|
13
|
+
if (image = service.get_image(identity).body['image'])
|
|
14
|
+
new(image)
|
|
15
|
+
end
|
|
16
|
+
rescue Fog::Scaleway::Compute::UnknownResource
|
|
17
|
+
nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Compute
|
|
4
|
+
class Ip < Fog::Model
|
|
5
|
+
identity :id
|
|
6
|
+
|
|
7
|
+
attribute :address
|
|
8
|
+
attribute :organization
|
|
9
|
+
attribute :reverse
|
|
10
|
+
attribute :server
|
|
11
|
+
|
|
12
|
+
ignore_attributes :dynamic
|
|
13
|
+
|
|
14
|
+
def server=(value)
|
|
15
|
+
attributes[:server] = case value
|
|
16
|
+
when Hash
|
|
17
|
+
service.servers.new(value)
|
|
18
|
+
when String
|
|
19
|
+
service.servers.new(identity: value)
|
|
20
|
+
else
|
|
21
|
+
value
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
def save
|
|
26
|
+
if persisted?
|
|
27
|
+
update
|
|
28
|
+
else
|
|
29
|
+
create
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def destroy
|
|
34
|
+
requires :identity
|
|
35
|
+
|
|
36
|
+
service.delete_ip(identity)
|
|
37
|
+
true
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
private
|
|
41
|
+
|
|
42
|
+
def create
|
|
43
|
+
options = {}
|
|
44
|
+
options[:server] = server.identity unless server.nil?
|
|
45
|
+
|
|
46
|
+
if (ip = service.create_ip(options).body['ip'])
|
|
47
|
+
merge_attributes(ip)
|
|
48
|
+
true
|
|
49
|
+
else
|
|
50
|
+
false
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def update
|
|
55
|
+
requires :identity
|
|
56
|
+
|
|
57
|
+
body = attributes.dup
|
|
58
|
+
body[:server] = server.identity unless server.nil?
|
|
59
|
+
|
|
60
|
+
if (ip = service.update_ip(identity, body).body['ip'])
|
|
61
|
+
merge_attributes(ip)
|
|
62
|
+
true
|
|
63
|
+
else
|
|
64
|
+
false
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
module Fog
|
|
2
|
+
module Scaleway
|
|
3
|
+
class Compute
|
|
4
|
+
class Ips < Fog::Collection
|
|
5
|
+
model Fog::Scaleway::Compute::Ip
|
|
6
|
+
|
|
7
|
+
def all
|
|
8
|
+
ips = service.list_ips.body['ips'] || []
|
|
9
|
+
load(ips)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def get(identity)
|
|
13
|
+
if (ip = service.get_ip(identity).body['ip'])
|
|
14
|
+
new(ip)
|
|
15
|
+
end
|
|
16
|
+
rescue Fog::Scaleway::Compute::UnknownResource
|
|
17
|
+
nil
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|