droplet_kit 3.21.0 → 3.22.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.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +63 -0
  3. data/lib/droplet_kit/client.rb +5 -1
  4. data/lib/droplet_kit/mappings/app_mapping.rb +121 -0
  5. data/lib/droplet_kit/mappings/app_spec_mapping.rb +549 -0
  6. data/lib/droplet_kit/mappings/database_connection_pool_mapping.rb +4 -4
  7. data/lib/droplet_kit/mappings/database_kafka_config_mapping.rb +56 -0
  8. data/lib/droplet_kit/mappings/database_metrics_credentials_mapping.rb +15 -0
  9. data/lib/droplet_kit/mappings/database_mongo_config_mapping.rb +22 -0
  10. data/lib/droplet_kit/mappings/database_mysql_config_mapping.rb +50 -0
  11. data/lib/droplet_kit/mappings/database_opensearch_config_mapping.rb +55 -0
  12. data/lib/droplet_kit/mappings/database_postgres_config_mapping.rb +97 -0
  13. data/lib/droplet_kit/mappings/database_redis_config_mapping.rb +28 -0
  14. data/lib/droplet_kit/mappings/deployment_mapping.rb +136 -0
  15. data/lib/droplet_kit/mappings/one_click_kubernetes_mapping.rb +16 -0
  16. data/lib/droplet_kit/mappings/one_click_mapping.rb +17 -0
  17. data/lib/droplet_kit/mappings/reserved_ipv6_mapping.rb +17 -0
  18. data/lib/droplet_kit/models/app.rb +70 -0
  19. data/lib/droplet_kit/models/app_spec.rb +290 -0
  20. data/lib/droplet_kit/models/database_kafka_config.rb +47 -0
  21. data/lib/droplet_kit/models/database_metrics_credentials.rb +8 -0
  22. data/lib/droplet_kit/models/database_mongo_config.rb +13 -0
  23. data/lib/droplet_kit/models/database_mysql_config.rb +41 -0
  24. data/lib/droplet_kit/models/database_opensearch_config.rb +46 -0
  25. data/lib/droplet_kit/models/database_postgres_config.rb +76 -0
  26. data/lib/droplet_kit/models/database_redis_config.rb +19 -0
  27. data/lib/droplet_kit/models/deployment.rb +73 -0
  28. data/lib/droplet_kit/models/one_click.rb +8 -0
  29. data/lib/droplet_kit/models/one_click_kubernetes.rb +8 -0
  30. data/lib/droplet_kit/models/reserved_ipv6.rb +19 -0
  31. data/lib/droplet_kit/resources/app_resource.rb +36 -0
  32. data/lib/droplet_kit/resources/database_resource.rb +36 -0
  33. data/lib/droplet_kit/resources/one_click_resource.rb +23 -0
  34. data/lib/droplet_kit/resources/reserved_ipv6_action_resource.rb +20 -0
  35. data/lib/droplet_kit/resources/reserved_ipv6_resource.rb +33 -0
  36. data/lib/droplet_kit/version.rb +1 -1
  37. data/lib/droplet_kit.rb +134 -0
  38. metadata +35 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 615cc2a41f53e00443e4a8b59ea4e1af6b2f8edaf56c35fb764e79b5b28b77f3
4
- data.tar.gz: 949eb311f59b8923be9c91864482fde4cbf836869c62a095a5aafde54a161bdf
3
+ metadata.gz: 698070e9258df0d6b4711674ed025e014d37ee0a6ee30fcf3cac69bccf9644f3
4
+ data.tar.gz: b50b22841d938ed49400746fc544399a12702dedd6a81da26c2cf4fb104a4a7c
5
5
  SHA512:
6
- metadata.gz: c78d6a1b8b99b43bceb14fe12a6a07aef9d5ca08e6ae6724897082d6b619ae393d0a4332018f05682851bfa89a13247fa97fc58d594b32f76d8518e857c9fa22
7
- data.tar.gz: 813777d5eaa8e768291b2b4a0d9c74da033db81ce02f905227afea51283b25108b62a14d08fad46241c4db3677eec94199a9cb2926f5141c8e9ba9cb5fe9f6e7
6
+ metadata.gz: c51c4dff3d132e4fb9c0f198c5b0d59fa3ec376a577f9014820aefa5b12c97f820b07dd5a3928c30c9012d5fb7a7d56891c8c5a1ee4eba25b2e93952d9e79215
7
+ data.tar.gz: b067b226aa15bc9e6b38779fb0bcbd52b4d17452f2a691d750236c3f3f3a4871d22c7a5fcf48dad204721453cea117ea9609ab29482ecd513aef129cb939f9bd
data/README.md CHANGED
@@ -194,11 +194,26 @@ Actions supported:
194
194
  * `client.databases.create_connection_pool(database_connection_pool, id: 'id')`
195
195
  * `client.databases.find_connection_pool(id: 'id', name: 'name')`
196
196
  * `client.databases.list_connection_pools(id: 'id')`
197
+ * `client.databases.update_connection_pool(database_connection_pool, id: 'id', name: 'name')`
197
198
  * `client.databases.delete_connection_pool(id: 'id', name: 'name')`
198
199
  * `client.databases.set_eviction_policy(database_eviction_policy, id: 'id')`
199
200
  * `client.databases.get_eviction_policy(id: 'id')`
200
201
  * `client.databases.set_sql_mode(database_sql_mode, id: 'id')`
201
202
  * `client.databases.get_sql_mode(id: 'id')`
203
+ * `client.databases.get_metrics_credentials`
204
+ * `client.databases.update_metrics_credentials(database_metrics_credentials)`
205
+ * `client.databases.get_mongo_config(id: 'id')`
206
+ * `client.databases.get_postgres_config(id: 'id')`
207
+ * `client.databases.get_mysql_config(id: 'id')`
208
+ * `client.databases.get_redis_config(id: 'id')`
209
+ * `client.databases.get_kafka_config(id: 'id')`
210
+ * `client.databases.get_opensearch_config(id: 'id')`
211
+ * `client.databases.update_mongo_config(mongo_config, id: 'id')`
212
+ * `client.databases.update_postgres_config(postgres_config, id: 'id')`
213
+ * `client.databases.update_mysql_config(mysql_config, id: 'id')`
214
+ * `client.databases.update_redis_config(redis_config, id: 'id')`
215
+ * `client.databases.update_kafka_config(kafka_config, id: 'id')`
216
+ * `client.databases.update_opensearch_config(opensearch_config, id: 'id')`
202
217
 
203
218
  ## Droplet resource
204
219
 
@@ -570,6 +585,31 @@ Actions supported:
570
585
  * `client.reserved_ip_actions.assign(ip: reserved_ip.ip, droplet_id: droplet.id)`
571
586
  * `client.reserved_ip_actions.unassign(ip: reserved_ip.ip)`
572
587
 
588
+ ## Reserved IPv6 resource
589
+
590
+ client = DropletKit::Client.new(access_token: 'TOKEN')
591
+ client.reserved_ipv6s #=> DropletKit::ReservedIpv6Resource
592
+ reserved_ipv6 = DropletKit::ReservedIpv6.new(
593
+ region_slug: 'nyc1'
594
+ )
595
+
596
+ Actions supported:
597
+
598
+ * `client.reserved_ipv6s.all()`
599
+ * `client.reserved_ipv6s.find(ip: 'ip address')`
600
+ * `client.reserved_ipv6s.create(reserved_ipv6)`
601
+ * `client.reserved_ipv6s.delete(ip: 'ip address')`
602
+
603
+ ## Reserved IPv6 Action resource
604
+
605
+ client = DropletKit::Client.new(access_token: 'TOKEN')
606
+ client.reserved_ipv6_actions #=> DropletKit::ReservedIpv6ActionResource
607
+
608
+ Actions supported:
609
+
610
+ * `client.reserved_ipv6_actions.assign(ip: reserved_ipv6.ip, droplet_id: droplet.id)`
611
+ * `client.reserved_ipv6_actions.unassign(ip: reserved_ipv6.ip)`
612
+
573
613
  ## Volume resource
574
614
 
575
615
  client = DropletKit::Client.new(access_token: 'TOKEN')
@@ -660,6 +700,29 @@ Actions supported:
660
700
  * `client.container_registry_repository.delete_tag(registry_name: 'registry', repository: 'repo', tag: 'tag')`
661
701
  * `client.container_registry_repository.delete_manifest(registry_name: 'registry', repository: 'repo', manifest_digest: 'sha256:cb8a924afdf0229ef7515d9e5b3024e23b3eb03ddbba287f4a19c6ac90b8d221')`
662
702
 
703
+ ## 1-Click Applications resource
704
+
705
+ client = DropletKit::Client.new(access_token: 'TOKEN')
706
+ client.one_clicks #=> DropletKit::OneClickResource
707
+
708
+ Actions supported:
709
+
710
+ * `client.one_clicks.all(type: 'kubernetes|droplet')`
711
+ * `client.one_clicks.create_kubernetes(one_click_kubernetes)`
712
+
713
+ ## App resource
714
+
715
+ client = DropletKit::Client.new(access_token: 'TOKEN')
716
+ client.apps #=> DropletKit::AppResource
717
+
718
+ Actions supported:
719
+
720
+ * `client.apps.all(with_projects: bool)`
721
+ * `client.apps.find(id: 'id')`
722
+ * `client.apps.create(app)`
723
+ * `client.apps.update(app, id: 'id')`
724
+ * `client.apps.delete(id: 'id')`
725
+
663
726
  ## Contributing
664
727
 
665
728
  1. Fork it ( https://github.com/digitalocean/droplet_kit/fork )
@@ -75,13 +75,17 @@ module DropletKit
75
75
  floating_ips: FloatingIpResource,
76
76
  floating_ip_actions: FloatingIpActionResource,
77
77
  reserved_ips: ReservedIpResource,
78
+ reserved_ipv6s: ReservedIpv6Resource,
78
79
  reserved_ip_actions: ReservedIpActionResource,
80
+ reserved_ipv6_actions: ReservedIpv6ActionResource,
79
81
  tags: TagResource,
80
82
  projects: ProjectResource,
81
83
  volumes: VolumeResource,
82
84
  volume_actions: VolumeActionResource,
83
85
  vpcs: VPCResource,
84
- vpc_peerings: VPCPeeringResource
86
+ vpc_peerings: VPCPeeringResource,
87
+ one_clicks: OneClickResource,
88
+ apps: AppResource
85
89
  }
86
90
  end
87
91
 
@@ -0,0 +1,121 @@
1
+ # frozen_string_literal: true
2
+
3
+ module DropletKit
4
+ class AppDomainProgressMapping
5
+ include Kartograph::DSL
6
+
7
+ kartograph do
8
+ mapping AppDomainProgress
9
+ scoped :read do
10
+ property :steps
11
+ end
12
+ end
13
+ end
14
+
15
+ class AppDomainSpecMapping
16
+ include Kartograph::DSL
17
+
18
+ kartograph do
19
+ mapping AppDomainSpec
20
+ scoped :read do
21
+ property :domain
22
+ property :type
23
+ property :wildcard
24
+ property :zone
25
+ property :minimum_tls_version
26
+ end
27
+ end
28
+ end
29
+
30
+ class AppDomainValidationMapping
31
+ include Kartograph::DSL
32
+
33
+ kartograph do
34
+ mapping AppDomainValidation
35
+ scoped :read do
36
+ property :txt_name
37
+ property :txt_value
38
+ end
39
+ end
40
+ end
41
+
42
+ class AppDomainMapping
43
+ include Kartograph::DSL
44
+
45
+ kartograph do
46
+ mapping AppDomain
47
+ scoped :read do
48
+ property :id
49
+ property :phase
50
+ property :progress, include: AppDomainProgressMapping
51
+ property :spec, include: AppDomainSpecMapping
52
+ property :validation, plural: true, include: AppDomainValidationMapping
53
+ property :rotate_validation_records
54
+ property :certificate_expires_at
55
+ end
56
+ end
57
+ end
58
+
59
+ class AppRegionMapping
60
+ include Kartograph::DSL
61
+
62
+ kartograph do
63
+ mapping AppRegion
64
+ scoped :read do
65
+ property :continent
66
+ property :data_centers
67
+ property :default
68
+ property :disabled
69
+ property :flag
70
+ property :label
71
+ property :reason
72
+ property :slug
73
+ end
74
+ end
75
+ end
76
+
77
+ class AppDedicatedIpMapping
78
+ include Kartograph::DSL
79
+
80
+ kartograph do
81
+ mapping AppDedicatedIp
82
+ scoped :read do
83
+ property :ip
84
+ property :id
85
+ property :status
86
+ end
87
+ end
88
+ end
89
+
90
+ class AppMapping
91
+ include Kartograph::DSL
92
+
93
+ kartograph do
94
+ mapping App
95
+ root_key plural: 'apps', singular: 'app', scopes: [:read]
96
+
97
+ property :spec, include: AppSpecMapping, scopes: %i[create update read]
98
+ property :project_id, scopes: %i[create read]
99
+ property :update_all_source_versions, scopes: [:update]
100
+ scoped :read do
101
+ property :active_deployment, include: DeploymentMapping
102
+ property :created_at
103
+ property :default_ingress
104
+ property :domains, plural: true, include: AppDomainMapping
105
+ property :id
106
+ property :in_progress_deployment, include: DeploymentMapping
107
+ property :last_deployment_created_at
108
+ property :live_domain
109
+ property :live_url
110
+ property :live_url_base
111
+ property :owner_uuid
112
+ property :pending_deployment, include: DeploymentMapping
113
+ property :region, include: AppRegionMapping
114
+ property :tier_slug
115
+ property :updated_at
116
+ property :pinned_deployment, include: DeploymentMapping
117
+ property :dedicated_ips, plural: true, include: AppDedicatedIpMapping
118
+ end
119
+ end
120
+ end
121
+ end