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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c1d34fa4489a303254962e23037830b21f8668d4fe8c7a2d235e689247f2931
4
- data.tar.gz: 1d20b1833431fc1dfd1bb862d1a346c46534da84cce86ae41c1bdcc7b3171191
3
+ metadata.gz: 8b64f42f5d582cd0c7f7324596c83a6e71d5888142f366fb5533067f7fa87a8c
4
+ data.tar.gz: a85bc5f2e007729666d0ba94030a4bdeffbedc19e345827a59666c1b9a188474
5
5
  SHA512:
6
- metadata.gz: 8d9d9996e1a73b8e1937677798670bf1c02a0a5f87f125bf06dacc3523c9fa12ef50d797f8094208d3353285af65edb1e03d47d500212875c64a99c47097b8f9
7
- data.tar.gz: 37448fac41ec69fbce2bd7cee46d94f3f47856f9fa2e225820a88816992e2077a0105164e87666d5904f3ca88be9901f59f55d1133076b1d1e274065a87527a8
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
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smplkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.57
4
+ version: 3.0.58
5
5
  platform: ruby
6
6
  authors:
7
7
  - Smpl Solutions LLC