droplet_kit 3.12.0 → 3.15.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '08950216b1d1fbb079b469c39cab19fd1549d0a5b1d56e326ba6d38810d90d89'
4
- data.tar.gz: 1e46cfcfb57d05b5b6cab99b28f1291a9be12609a23deee843d7dd79dec82e44
3
+ metadata.gz: b7e1697abc6f7381a7ecc9d1c19c4e5cccd5844201759fe4624f87fed81164d3
4
+ data.tar.gz: 3768790a72256c983b85dd06c2031451899a3adb02b40c29a36a68942224be44
5
5
  SHA512:
6
- metadata.gz: 1ff1291e1a07ed0bcc4fa4c15d60ecc67201452a827711ab8991c29f026f03993a916a5e45602af63d24be523f7f6b9676d770d07004354d727815f63af43718
7
- data.tar.gz: 39c170a95862c1831ecedf86cba0104361263f54a80ed983e9f7f6efcc34f359d0721703c6631d1374b180501448266034f965920f401f81703c398e527a23ae
6
+ metadata.gz: 260ab8b6c9383854f8746b4247e7cc341f35ca8cd83ebec0ebda0c10fd64e9584aade02b0332c5efe6a24e70c3ffed7c8a27740f8680959a460e2af2031c83e0
7
+ data.tar.gz: 41667e255308d920906ecc83e92afcfb3273959dba81ddd73d1d2d631362f30946228bf530cc2330160a942b284ebf5a126cf00c195146b47f28adda52fdb8c9
data/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  # DropletKit
2
- [![Build Status](https://travis-ci.org/digitalocean/droplet_kit.svg?branch=master)](https://travis-ci.org/digitalocean/droplet_kit)
2
+ [![Build Status](https://github.com/digitalocean/droplet_kit/workflows/CI/badge.svg?branch=main)](https://github.com/digitalocean/droplet_kit/actions)
3
3
  [![Gem Version](https://badge.fury.io/rb/droplet_kit.svg)](https://badge.fury.io/rb/droplet_kit)
4
4
 
5
5
  DropletKit is the official [DigitalOcean V2 API](https://developers.digitalocean.com/v2/) client. It supports everything the API can do with a simple interface written in Ruby.
@@ -284,7 +284,8 @@ inbound_rule = DropletKit::FirewallInboundRule.new(
284
284
  ports: '0',
285
285
  sources: {
286
286
  tags: ['frontend', 'backend'],
287
- load_balancer_uids: ['d2d3920a-9d45-41b0-b018-d15e18ec60a4']
287
+ load_balancer_uids: ['d2d3920a-9d45-41b0-b018-d15e18ec60a4'],
288
+ kubernetes_ids: ['a47b6fb1-4791-4b29-aae1-2b1b9f68a2da']
288
289
  }
289
290
  )
290
291
 
@@ -6,7 +6,7 @@ module DropletKit
6
6
  mapping DatabaseUser
7
7
  root_key singular: 'user', plural: 'users', scopes: [:read]
8
8
 
9
- property :name, scopes: [:read]
9
+ property :name, scopes: [:read, :create]
10
10
  property :role, scopes: [:read, :create]
11
11
  property :password, scopes: [:read, :create]
12
12
  end
@@ -38,6 +38,7 @@ module DropletKit
38
38
  property :ssh_keys, scopes: [:create]
39
39
  property :backups, scopes: [:create]
40
40
  property :monitoring, scopes: [:create]
41
+ property :with_droplet_agent, scopes: [:create]
41
42
  property :ipv6, scopes: [:create]
42
43
  property :user_data, scopes: [:create]
43
44
  property :private_networking, scopes: [:create]
@@ -18,6 +18,7 @@ module DropletKit
18
18
  property :maintenance_policy, scopes: [:read, :update, :create]
19
19
  property :node_pools, scopes: [:read, :create]
20
20
  property :vpc_uuid, scopes: [:read, :create]
21
+ property :ha, scopes: [:read, :create]
21
22
  end
22
23
  end
23
24
  end
@@ -5,11 +5,12 @@ module DropletKit
5
5
  mapping KubernetesOptions
6
6
  root_key singular: 'options', scopes: [:read]
7
7
 
8
- Version = Struct.new(:slug, :kubernetes_version)
8
+ Version = Struct.new(:slug, :kubernetes_version, :supported_features)
9
9
  property :versions, plural: true, scopes: [:read] do
10
10
  mapping Version
11
11
  property :slug, scopes: [:read]
12
12
  property :kubernetes_version, scopes: [:read]
13
+ property :supported_features, scopes: [:read]
13
14
  end
14
15
 
15
16
  Region = Struct.new(:name, :slug)
@@ -12,6 +12,7 @@ module DropletKit
12
12
  property :status
13
13
  property :created_at
14
14
  property :region, include: RegionMapping
15
+ property :size
15
16
  property :vpc_uuid
16
17
  end
17
18
 
@@ -30,6 +31,7 @@ module DropletKit
30
31
 
31
32
  scoped :update, :create do
32
33
  property :region
34
+ property :size
33
35
  end
34
36
 
35
37
  scoped :create do
@@ -13,6 +13,7 @@ module DropletKit
13
13
  attribute :ssh_keys
14
14
  attribute :backups
15
15
  attribute :monitoring
16
+ attribute :with_droplet_agent
16
17
  attribute :size
17
18
  attribute :ipv6
18
19
  attribute :user_data
@@ -1,6 +1,6 @@
1
1
  module DropletKit
2
2
  class KubernetesCluster < BaseModel
3
- [:id, :name, :region, :version, :auto_upgrade, :cluster_subnet, :service_subnet, :ipv4, :endpoint, :tags, :maintenance_policy, :node_pools, :vpc_uuid].each do |key|
3
+ [:id, :name, :region, :version, :auto_upgrade, :cluster_subnet, :service_subnet, :ipv4, :endpoint, :tags, :maintenance_policy, :node_pools, :vpc_uuid, :ha].each do |key|
4
4
  attribute(key)
5
5
  end
6
6
  end
@@ -8,6 +8,7 @@ module DropletKit
8
8
  attribute :created_at
9
9
  attribute :tag
10
10
  attribute :region
11
+ attribute :size
11
12
  attribute :redirect_http_to_https, Boolean, :default => false
12
13
  attribute :enable_proxy_protocol, Boolean, :default => false
13
14
  attribute :enable_backend_keepalive, Boolean, :default => false
@@ -13,7 +13,20 @@ module DropletKit
13
13
  end
14
14
 
15
15
  action :create, 'POST /v2/kubernetes/clusters' do
16
- body { |object| KubernetesClusterMapping.representation_for(:create, object) }
16
+ body do |object|
17
+ # This ensures that both a hash and an instance of KubernetesNodePool can be passed
18
+ # into the node_pools array
19
+ #
20
+ # Ex:
21
+ # KubernetesCluster.new(node_pools: [{}])
22
+ # or
23
+ # KubernetesCluster.new(node_pools: [KubernetesNodePool.new()])
24
+ if object.respond_to?(:node_pools) && object.node_pools.respond_to?(:map)
25
+ object.node_pools = object.node_pools.map(&:to_hash)
26
+ end
27
+
28
+ KubernetesClusterMapping.representation_for(:create, object)
29
+ end
17
30
  handler(201) { |response, cluster| KubernetesClusterMapping.extract_into_object(cluster, response.body, :read) }
18
31
  handler(422) { |response| ErrorMapping.fail_with(FailedCreate, response.body) }
19
32
  end
@@ -49,7 +49,7 @@ module DropletKit
49
49
  resources.to_a.map do |resource|
50
50
  if resource.is_a?(String) && DropletKit::BaseModel.valid_urn?(resource)
51
51
  resource
52
- elsif resource.try(:urn) && DropletKit::BaseModel.valid_urn?(resource.urn)
52
+ elsif resource.respond_to?(:urn) && resource.urn && DropletKit::BaseModel.valid_urn?(resource.urn)
53
53
  resource.urn
54
54
  else
55
55
  raise DropletKit::Error.new("cannot assign resource without valid urn: #{resource}")
@@ -1,3 +1,3 @@
1
1
  module DropletKit
2
- VERSION = "3.12.0"
2
+ VERSION = "3.15.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: droplet_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.12.0
4
+ version: 3.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - DigitalOcean API Engineering team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-11-09 00:00:00.000000000 Z
11
+ date: 2021-10-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -324,7 +324,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
324
324
  - !ruby/object:Gem::Version
325
325
  version: '0'
326
326
  requirements: []
327
- rubygems_version: 3.1.4
327
+ rubygems_version: 3.0.8
328
328
  signing_key:
329
329
  specification_version: 4
330
330
  summary: Droplet Kit is the official Ruby library for DigitalOcean's API