droplet_kit 2.9.0 → 3.0.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 +4 -4
- data/README.md +15 -0
- data/lib/droplet_kit.rb +5 -0
- data/lib/droplet_kit/client.rb +2 -1
- data/lib/droplet_kit/mappings/droplet_mapping.rb +2 -0
- data/lib/droplet_kit/mappings/kubernetes_cluster_mapping.rb +1 -0
- data/lib/droplet_kit/mappings/load_balancer_mapping.rb +5 -0
- data/lib/droplet_kit/mappings/vpc_mapping.rb +27 -0
- data/lib/droplet_kit/mappings/vpc_member_mapping.rb +16 -0
- data/lib/droplet_kit/models/droplet.rb +1 -0
- data/lib/droplet_kit/models/kubernetes_cluster.rb +1 -1
- data/lib/droplet_kit/models/load_balancer.rb +1 -0
- data/lib/droplet_kit/models/vpc.rb +9 -0
- data/lib/droplet_kit/models/vpc_member.rb +7 -0
- data/lib/droplet_kit/resources/vpc_resource.rb +56 -0
- data/lib/droplet_kit/version.rb +1 -1
- metadata +8 -3
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: d75d76e50314c589a55b8184cd90c815f5afb0ce
         | 
| 4 | 
            +
              data.tar.gz: b3292e5817bb966fcfd0c04c30642514ab4facaa
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e97b4b7af8d4144b0535a23f8d53ce36e111b3558999192967839ffe722796a91a4f4f86bd27a1b3e5144afc0ce7366974f868ea3ff9326b8ba511293ae0d7f0
         | 
| 7 | 
            +
              data.tar.gz: 46a7b5cd26dab725bb936e2bac8e75db053904f02a37922fc4716380efffec928ce09e596fd9de753637fd9e49b06ee84b63469e236e16299a7e94cf43b20fae
         | 
    
        data/README.md
    CHANGED
    
    | @@ -511,6 +511,21 @@ Actions supported: | |
| 511 511 | 
             
            * `client.snapshots.find(id: 'id')`
         | 
| 512 512 | 
             
            * `client.snapshots.delete(id: 'id')`
         | 
| 513 513 |  | 
| 514 | 
            +
            ## VPC resource
         | 
| 515 | 
            +
             | 
| 516 | 
            +
                client = DropletKit::Client.new(access_token: 'TOKEN')
         | 
| 517 | 
            +
                client.vpcs #=> DropletKit::VPCResource
         | 
| 518 | 
            +
             | 
| 519 | 
            +
            Actions supported:
         | 
| 520 | 
            +
             | 
| 521 | 
            +
            * `client.vpcs.find(id: 'id')`
         | 
| 522 | 
            +
            * `client.vpcs.all()`
         | 
| 523 | 
            +
            * `client.vpcs.create(vpc)`
         | 
| 524 | 
            +
            * `client.vpcs.update(vpc, id: 'id')`
         | 
| 525 | 
            +
            * `client.vpcs.patch(vpc, id: 'id')`
         | 
| 526 | 
            +
            * `client.vpcs.delete(id: 'id')`
         | 
| 527 | 
            +
            * `client.vpcs.all_members(id: 'id')`
         | 
| 528 | 
            +
             | 
| 514 529 | 
             
            ## Contributing
         | 
| 515 530 |  | 
| 516 531 | 
             
            1. Fork it ( https://github.com/digitalocean/droplet_kit/fork )
         | 
    
        data/lib/droplet_kit.rb
    CHANGED
    
    | @@ -47,6 +47,8 @@ module DropletKit | |
| 47 47 | 
             
              autoload :KubernetesNodePool, 'droplet_kit/models/kubernetes_node_pool'
         | 
| 48 48 | 
             
              autoload :KubernetesNode, 'droplet_kit/models/kubernetes_node'
         | 
| 49 49 | 
             
              autoload :KubernetesOptions, 'droplet_kit/models/kubernetes_options'
         | 
| 50 | 
            +
              autoload :VPC, 'droplet_kit/models/vpc'
         | 
| 51 | 
            +
              autoload :VPCMember, 'droplet_kit/models/vpc_member'
         | 
| 50 52 |  | 
| 51 53 | 
             
              # Resources
         | 
| 52 54 | 
             
              autoload :DropletResource, 'droplet_kit/resources/droplet_resource'
         | 
| @@ -74,6 +76,7 @@ module DropletKit | |
| 74 76 | 
             
              autoload :CDNResource, 'droplet_kit/resources/cdn_resource'
         | 
| 75 77 | 
             
              autoload :KubernetesClusterResource, 'droplet_kit/resources/kubernetes_cluster_resource'
         | 
| 76 78 | 
             
              autoload :KubernetesOptionsResource, 'droplet_kit/resources/kubernetes_options_resource'
         | 
| 79 | 
            +
              autoload :VPCResource, 'droplet_kit/resources/vpc_resource'
         | 
| 77 80 |  | 
| 78 81 | 
             
              # JSON Maps
         | 
| 79 82 | 
             
              autoload :DropletMapping, 'droplet_kit/mappings/droplet_mapping'
         | 
| @@ -116,6 +119,8 @@ module DropletKit | |
| 116 119 | 
             
              autoload :KubernetesNodePoolMapping, 'droplet_kit/mappings/kubernetes_node_pool_mapping'
         | 
| 117 120 | 
             
              autoload :KubernetesNodeMapping, 'droplet_kit/mappings/kubernetes_node_mapping'
         | 
| 118 121 | 
             
              autoload :KubernetesOptionsMapping, 'droplet_kit/mappings/kubernetes_options_mapping'
         | 
| 122 | 
            +
              autoload :VPCMapping, 'droplet_kit/mappings/vpc_mapping'
         | 
| 123 | 
            +
              autoload :VPCMemberMapping, 'droplet_kit/mappings/vpc_member_mapping'
         | 
| 119 124 |  | 
| 120 125 | 
             
              # Utils
         | 
| 121 126 | 
             
              autoload :PaginatedResource, 'droplet_kit/paginated_resource'
         | 
    
        data/lib/droplet_kit/client.rb
    CHANGED
    
    
| @@ -20,6 +20,7 @@ module DropletKit | |
| 20 20 | 
             
                  property :features, scopes: [:read]
         | 
| 21 21 | 
             
                  property :size_slug, scopes: [:read]
         | 
| 22 22 | 
             
                  property :tags, scopes: [:read]
         | 
| 23 | 
            +
                  property :vpc_uuid, scopes: [:read]
         | 
| 23 24 |  | 
| 24 25 | 
             
                  property :region, scopes: [:read], include: RegionMapping
         | 
| 25 26 | 
             
                  property :image, scopes: [:read], include: ImageMapping
         | 
| @@ -39,6 +40,7 @@ module DropletKit | |
| 39 40 | 
             
                  property :ipv6, scopes: [:create]
         | 
| 40 41 | 
             
                  property :user_data, scopes: [:create]
         | 
| 41 42 | 
             
                  property :private_networking, scopes: [:create]
         | 
| 43 | 
            +
                  property :vpc_uuid, scopes: [:create]
         | 
| 42 44 | 
             
                  property :tags, scopes: [:create]
         | 
| 43 45 | 
             
                end
         | 
| 44 46 | 
             
              end
         | 
| @@ -12,6 +12,7 @@ module DropletKit | |
| 12 12 | 
             
                    property :status
         | 
| 13 13 | 
             
                    property :created_at
         | 
| 14 14 | 
             
                    property :region, include: RegionMapping
         | 
| 15 | 
            +
                    property :vpc_uuid
         | 
| 15 16 | 
             
                  end
         | 
| 16 17 |  | 
| 17 18 | 
             
                  scoped :read, :update, :create do
         | 
| @@ -29,6 +30,10 @@ module DropletKit | |
| 29 30 | 
             
                  scoped  :update, :create do
         | 
| 30 31 | 
             
                    property :region
         | 
| 31 32 | 
             
                  end
         | 
| 33 | 
            +
             | 
| 34 | 
            +
                  scoped :create do
         | 
| 35 | 
            +
                    property :vpc_uuid
         | 
| 36 | 
            +
                  end
         | 
| 32 37 | 
             
                end
         | 
| 33 38 | 
             
              end
         | 
| 34 39 | 
             
            end
         | 
| @@ -0,0 +1,27 @@ | |
| 1 | 
            +
            module DropletKit
         | 
| 2 | 
            +
              class VPCMapping
         | 
| 3 | 
            +
                include Kartograph::DSL
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                kartograph do
         | 
| 6 | 
            +
                  mapping VPC
         | 
| 7 | 
            +
                  root_key plural: 'vpcs', singular: 'vpc', scopes: [:read]
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  scoped :read do
         | 
| 10 | 
            +
                    property :id
         | 
| 11 | 
            +
                    property :name
         | 
| 12 | 
            +
                    property :region
         | 
| 13 | 
            +
                    property :created_at
         | 
| 14 | 
            +
                    property :default
         | 
| 15 | 
            +
                  end
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                  scoped :update, :patch do
         | 
| 18 | 
            +
                    property :name
         | 
| 19 | 
            +
                  end
         | 
| 20 | 
            +
             | 
| 21 | 
            +
                  scoped :create do
         | 
| 22 | 
            +
                    property :name
         | 
| 23 | 
            +
                    property :region
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
              end
         | 
| 27 | 
            +
            end
         | 
| @@ -0,0 +1,16 @@ | |
| 1 | 
            +
            module DropletKit
         | 
| 2 | 
            +
              class VPCMemberMapping
         | 
| 3 | 
            +
                include Kartograph::DSL
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                kartograph do
         | 
| 6 | 
            +
                  mapping VPCMember
         | 
| 7 | 
            +
                  root_key plural: 'members', scopes: [:read]
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                  scoped :read do
         | 
| 10 | 
            +
                    property  :urn
         | 
| 11 | 
            +
                    property  :name
         | 
| 12 | 
            +
                    property  :created_at
         | 
| 13 | 
            +
                  end
         | 
| 14 | 
            +
                end
         | 
| 15 | 
            +
              end
         | 
| 16 | 
            +
            end
         | 
| @@ -1,6 +1,6 @@ | |
| 1 1 | 
             
            module DropletKit
         | 
| 2 2 | 
             
              class KubernetesCluster < BaseModel
         | 
| 3 | 
            -
                [:id, :name, :region, :version, :cluster_subnet, :service_subnet, :ipv4, :endpoint, :tags, :node_pools].each do |key|
         | 
| 3 | 
            +
                [:id, :name, :region, :version, :cluster_subnet, :service_subnet, :ipv4, :endpoint, :tags, :node_pools, :vpc_uuid].each do |key|
         | 
| 4 4 | 
             
                  attribute(key)
         | 
| 5 5 | 
             
                end
         | 
| 6 6 | 
             
              end
         | 
| @@ -0,0 +1,56 @@ | |
| 1 | 
            +
            module DropletKit
         | 
| 2 | 
            +
              class VPCResource < ResourceKit::Resource
         | 
| 3 | 
            +
                include ErrorHandlingResourcable
         | 
| 4 | 
            +
             | 
| 5 | 
            +
                resources do
         | 
| 6 | 
            +
                  action :find, 'GET /v2/vpcs/:id' do
         | 
| 7 | 
            +
                    handler(200) do |response|
         | 
| 8 | 
            +
                      VPCMapping.extract_single(response.body, :read)
         | 
| 9 | 
            +
                    end
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
                  action :all, 'GET /v2/vpcs' do
         | 
| 13 | 
            +
                    query_keys :per_page, :page
         | 
| 14 | 
            +
             | 
| 15 | 
            +
                    handler(200) do |response|
         | 
| 16 | 
            +
                      VPCMapping.extract_collection(response.body, :read)
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
             | 
| 20 | 
            +
                  action :create, 'POST /v2/vpcs' do
         | 
| 21 | 
            +
                    body { |vpc| VPCMapping.representation_for(:create, vpc) }
         | 
| 22 | 
            +
                    handler(202) { |response| VPCMapping.extract_single(response.body, :read) }
         | 
| 23 | 
            +
                    handler(422) { |response| ErrorMapping.fail_with(FailedCreate, response.body) }
         | 
| 24 | 
            +
                  end
         | 
| 25 | 
            +
             | 
| 26 | 
            +
                  action :update, 'PUT /v2/vpcs/:id' do
         | 
| 27 | 
            +
                    body {|vpc| VPCMapping.representation_for(:update, vpc) }
         | 
| 28 | 
            +
                    handler(200) { |response| VPCMapping.extract_single(response.body, :read) }
         | 
| 29 | 
            +
                    handler(422) { |response| ErrorMapping.fail_with(FailedUpdate, response.body) }
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
             | 
| 32 | 
            +
                  action :patch, 'PATCH /v2/vpcs/:id' do
         | 
| 33 | 
            +
                      body {|vpc| VPCMapping.representation_for(:patch, vpc) }
         | 
| 34 | 
            +
                      handler(200) { |response| VPCMapping.extract_single(response.body, :read) }
         | 
| 35 | 
            +
                      handler(422) { |response| ErrorMapping.fail_with(FailedUpdate, response.body) }
         | 
| 36 | 
            +
                    end
         | 
| 37 | 
            +
             | 
| 38 | 
            +
                  action :delete, 'DELETE /v2/vpcs/:id' do
         | 
| 39 | 
            +
                    handler(204) { |_| true }
         | 
| 40 | 
            +
                  end
         | 
| 41 | 
            +
             | 
| 42 | 
            +
                  action :all_members, 'GET /v2/vpcs/:id/members' do
         | 
| 43 | 
            +
                    query_keys :per_page, :page
         | 
| 44 | 
            +
                    handler(200) { |response| VPCMemberMapping.extract_collection(response.body, :read) }
         | 
| 45 | 
            +
                  end
         | 
| 46 | 
            +
                end
         | 
| 47 | 
            +
             | 
| 48 | 
            +
                def all(*args)
         | 
| 49 | 
            +
                  PaginatedResource.new(action(:all), self, *args)
         | 
| 50 | 
            +
                end
         | 
| 51 | 
            +
             | 
| 52 | 
            +
                def all_members(*args)
         | 
| 53 | 
            +
                  PaginatedResource.new(action(:all_members), self, *args)
         | 
| 54 | 
            +
                end
         | 
| 55 | 
            +
              end
         | 
| 56 | 
            +
            end
         | 
    
        data/lib/droplet_kit/version.rb
    CHANGED
    
    
    
        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:  | 
| 4 | 
            +
              version: 3.0.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Robert Ross
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-04-04 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: virtus
         | 
| @@ -221,6 +221,8 @@ files: | |
| 221 221 | 
             
            - lib/droplet_kit/mappings/tagged_images_resources_mapping.rb
         | 
| 222 222 | 
             
            - lib/droplet_kit/mappings/tagged_resources_mapping.rb
         | 
| 223 223 | 
             
            - lib/droplet_kit/mappings/volume_mapping.rb
         | 
| 224 | 
            +
            - lib/droplet_kit/mappings/vpc_mapping.rb
         | 
| 225 | 
            +
            - lib/droplet_kit/mappings/vpc_member_mapping.rb
         | 
| 224 226 | 
             
            - lib/droplet_kit/models/account.rb
         | 
| 225 227 | 
             
            - lib/droplet_kit/models/action.rb
         | 
| 226 228 | 
             
            - lib/droplet_kit/models/base_model.rb
         | 
| @@ -262,6 +264,8 @@ files: | |
| 262 264 | 
             
            - lib/droplet_kit/models/tagged_images_resources.rb
         | 
| 263 265 | 
             
            - lib/droplet_kit/models/tagged_resources.rb
         | 
| 264 266 | 
             
            - lib/droplet_kit/models/volume.rb
         | 
| 267 | 
            +
            - lib/droplet_kit/models/vpc.rb
         | 
| 268 | 
            +
            - lib/droplet_kit/models/vpc_member.rb
         | 
| 265 269 | 
             
            - lib/droplet_kit/paginated_resource.rb
         | 
| 266 270 | 
             
            - lib/droplet_kit/resources/account_resource.rb
         | 
| 267 271 | 
             
            - lib/droplet_kit/resources/action_resource.rb
         | 
| @@ -288,6 +292,7 @@ files: | |
| 288 292 | 
             
            - lib/droplet_kit/resources/tag_resource.rb
         | 
| 289 293 | 
             
            - lib/droplet_kit/resources/volume_action_resource.rb
         | 
| 290 294 | 
             
            - lib/droplet_kit/resources/volume_resource.rb
         | 
| 295 | 
            +
            - lib/droplet_kit/resources/vpc_resource.rb
         | 
| 291 296 | 
             
            - lib/droplet_kit/version.rb
         | 
| 292 297 | 
             
            - lib/tasks/resource_doc.rake
         | 
| 293 298 | 
             
            homepage: https://github.com/digitalocean/droplet_kit
         | 
| @@ -310,7 +315,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 310 315 | 
             
                  version: '0'
         | 
| 311 316 | 
             
            requirements: []
         | 
| 312 317 | 
             
            rubyforge_project: 
         | 
| 313 | 
            -
            rubygems_version: 2.6. | 
| 318 | 
            +
            rubygems_version: 2.6.14
         | 
| 314 319 | 
             
            signing_key: 
         | 
| 315 320 | 
             
            specification_version: 4
         | 
| 316 321 | 
             
            summary: Droplet Kit is the official Ruby library for DigitalOcean's API
         |