smplkit 3.0.57 → 3.0.58
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/lib/smplkit/management/client.rb +81 -1
- data/lib/smplkit/management/models.rb +45 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8b64f42f5d582cd0c7f7324596c83a6e71d5888142f366fb5533067f7fa87a8c
|
|
4
|
+
data.tar.gz: a85bc5f2e007729666d0ba94030a4bdeffbedc19e345827a59666c1b9a188474
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 041420f0b59f0afd194c667b8a9571ebda634d4f4aaeeba96ac9eec0abc37fa61eb6f257766bfd8c5ff44657ad1df5b7425e24448eb646606c10243fb5112cb3
|
|
7
|
+
data.tar.gz: 79e8e193b6f25fd0fe1a402ae5e6acb39c18e3d89f3ebcba155750d2b1065f6ca3750427926523335477a461192826d89c024cedaedf96ae75e9e623131d7cac
|
|
@@ -11,6 +11,7 @@ module Smplkit
|
|
|
11
11
|
# - +mgmt.contexts.*+
|
|
12
12
|
# - +mgmt.context_types.*+
|
|
13
13
|
# - +mgmt.environments.*+
|
|
14
|
+
# - +mgmt.services.*+
|
|
14
15
|
# - +mgmt.account_settings.*+
|
|
15
16
|
# - +mgmt.config.*+
|
|
16
17
|
# - +mgmt.flags.*+
|
|
@@ -33,7 +34,7 @@ module Smplkit
|
|
|
33
34
|
# per exhaustive fetch.
|
|
34
35
|
RUNTIME_PAGE_SIZE = 1000
|
|
35
36
|
|
|
36
|
-
attr_reader :contexts, :context_types, :environments, :account_settings,
|
|
37
|
+
attr_reader :contexts, :context_types, :environments, :services, :account_settings,
|
|
37
38
|
:config, :flags, :loggers, :log_groups, :audit
|
|
38
39
|
|
|
39
40
|
def self.from_resolved(resolved, extra_headers: nil)
|
|
@@ -61,6 +62,7 @@ module Smplkit
|
|
|
61
62
|
@contexts = ContextsNamespace.new(@app_api_client)
|
|
62
63
|
@context_types = ContextTypesNamespace.new(@app_api_client)
|
|
63
64
|
@environments = EnvironmentsNamespace.new(@app_api_client)
|
|
65
|
+
@services = ServicesNamespace.new(@app_api_client)
|
|
64
66
|
@account_settings = AccountSettingsNamespace.new(@app_api_client)
|
|
65
67
|
@config = ConfigNamespace.new(@config_api_client)
|
|
66
68
|
@flags = FlagsNamespace.new(@flags_api_client)
|
|
@@ -406,6 +408,84 @@ module Smplkit
|
|
|
406
408
|
end
|
|
407
409
|
end
|
|
408
410
|
|
|
411
|
+
class ServicesNamespace
|
|
412
|
+
def initialize(api_client)
|
|
413
|
+
@api = SmplkitGeneratedClient::App::ServicesApi.new(api_client)
|
|
414
|
+
end
|
|
415
|
+
|
|
416
|
+
def list(page_number: nil, page_size: nil)
|
|
417
|
+
opts = {}
|
|
418
|
+
opts[:page_number] = page_number unless page_number.nil?
|
|
419
|
+
opts[:page_size] = page_size unless page_size.nil?
|
|
420
|
+
response = ErrorMapping.call { @api.list_services(opts) }
|
|
421
|
+
(response.data || []).map { |r| from_resource(ResourceShim.from_model(r)) }
|
|
422
|
+
end
|
|
423
|
+
|
|
424
|
+
def get(key)
|
|
425
|
+
response = ErrorMapping.call { @api.get_service(key) }
|
|
426
|
+
from_resource(ResourceShim.from_model(response.data))
|
|
427
|
+
end
|
|
428
|
+
|
|
429
|
+
def delete(key)
|
|
430
|
+
ErrorMapping.call { @api.delete_service(key) }
|
|
431
|
+
true
|
|
432
|
+
end
|
|
433
|
+
|
|
434
|
+
def new(key, name: nil)
|
|
435
|
+
Management::Service.new(
|
|
436
|
+
self,
|
|
437
|
+
key: key,
|
|
438
|
+
name: name || Smplkit::Helpers.key_to_display_name(key)
|
|
439
|
+
)
|
|
440
|
+
end
|
|
441
|
+
|
|
442
|
+
def _create_service(svc)
|
|
443
|
+
response = ErrorMapping.call { @api.create_service(create_body_for(svc)) }
|
|
444
|
+
from_resource(ResourceShim.from_model(response.data))
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
def _update_service(svc)
|
|
448
|
+
response = ErrorMapping.call { @api.update_service(svc.key, body_for(svc)) }
|
|
449
|
+
from_resource(ResourceShim.from_model(response.data))
|
|
450
|
+
end
|
|
451
|
+
|
|
452
|
+
private
|
|
453
|
+
|
|
454
|
+
def body_for(svc)
|
|
455
|
+
SmplkitGeneratedClient::App::ServiceRequest.new(
|
|
456
|
+
data: SmplkitGeneratedClient::App::ServiceResource.new(
|
|
457
|
+
type: "service",
|
|
458
|
+
id: svc.key,
|
|
459
|
+
attributes: SmplkitGeneratedClient::App::Service.new(
|
|
460
|
+
name: svc.name
|
|
461
|
+
)
|
|
462
|
+
)
|
|
463
|
+
)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
def create_body_for(svc)
|
|
467
|
+
SmplkitGeneratedClient::App::ServiceCreateRequest.new(
|
|
468
|
+
data: SmplkitGeneratedClient::App::ServiceCreateResource.new(
|
|
469
|
+
type: "service",
|
|
470
|
+
id: svc.key,
|
|
471
|
+
attributes: SmplkitGeneratedClient::App::Service.new(
|
|
472
|
+
name: svc.name
|
|
473
|
+
)
|
|
474
|
+
)
|
|
475
|
+
)
|
|
476
|
+
end
|
|
477
|
+
|
|
478
|
+
def from_resource(resource)
|
|
479
|
+
attrs = resource["attributes"] || {}
|
|
480
|
+
Management::Service.new(
|
|
481
|
+
self,
|
|
482
|
+
id: resource["id"], key: attrs["key"] || resource["id"],
|
|
483
|
+
name: attrs["name"],
|
|
484
|
+
created_at: attrs["created_at"], updated_at: attrs["updated_at"]
|
|
485
|
+
)
|
|
486
|
+
end
|
|
487
|
+
end
|
|
488
|
+
|
|
409
489
|
class AccountSettingsNamespace
|
|
410
490
|
def initialize(api_client)
|
|
411
491
|
@api = SmplkitGeneratedClient::App::AccountApi.new(api_client)
|
|
@@ -100,6 +100,51 @@ module Smplkit
|
|
|
100
100
|
end
|
|
101
101
|
end
|
|
102
102
|
|
|
103
|
+
# A service resource — a backend application or microservice in the
|
|
104
|
+
# customer's stack that contexts can be evaluated against.
|
|
105
|
+
class Service
|
|
106
|
+
attr_accessor :id, :key, :name, :created_at, :updated_at
|
|
107
|
+
|
|
108
|
+
def initialize(client = nil, key:, id: nil, name: nil,
|
|
109
|
+
created_at: nil, updated_at: nil)
|
|
110
|
+
@client = client
|
|
111
|
+
@id = id
|
|
112
|
+
@key = key
|
|
113
|
+
@name = name
|
|
114
|
+
@created_at = created_at
|
|
115
|
+
@updated_at = updated_at
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
def save
|
|
119
|
+
raise "Service was constructed without a client; cannot save" if @client.nil?
|
|
120
|
+
|
|
121
|
+
updated =
|
|
122
|
+
if @created_at.nil?
|
|
123
|
+
@client._create_service(self)
|
|
124
|
+
else
|
|
125
|
+
@client._update_service(self)
|
|
126
|
+
end
|
|
127
|
+
_apply(updated)
|
|
128
|
+
self
|
|
129
|
+
end
|
|
130
|
+
alias save! save
|
|
131
|
+
|
|
132
|
+
def delete
|
|
133
|
+
raise "Service was constructed without a client; cannot delete" if @client.nil?
|
|
134
|
+
|
|
135
|
+
@client.delete(@key)
|
|
136
|
+
end
|
|
137
|
+
alias delete! delete
|
|
138
|
+
|
|
139
|
+
def _apply(other)
|
|
140
|
+
@id = other.id
|
|
141
|
+
@key = other.key
|
|
142
|
+
@name = other.name
|
|
143
|
+
@created_at = other.created_at
|
|
144
|
+
@updated_at = other.updated_at
|
|
145
|
+
end
|
|
146
|
+
end
|
|
147
|
+
|
|
103
148
|
# An account-wide settings resource.
|
|
104
149
|
class AccountSettings
|
|
105
150
|
attr_accessor :id, :environment_order, :default_environment, :updated_at
|