3scale-api 0.4.0 → 0.5.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a193e21d894bbcbc922ecce719af6737c68b71e77ebee260ad4de038bf6676de
4
- data.tar.gz: 7b2d0644e45a953242a700f950b268dec38d719e73c5619bef14961bc13ea672
3
+ metadata.gz: 35e0461eb588d4122409263fd94afe29e14b40cb0d34dca1d2a2c4f4ea91737f
4
+ data.tar.gz: ee61ee6359a8ff0c5cb9165dfb15bf8c8fe1d647bfc53056dc58838062d83255
5
5
  SHA512:
6
- metadata.gz: e0e2b6d70e63fb1c1a4965178ba99f4ffe9cfc93f89404e4123364dc50fad56b37d89bf05243998854dd43bcefb1d93806eb0a88b32ae7b0040e7e35a38f5af0
7
- data.tar.gz: 0de8726e6eed9011f1fe694b46a1e2b242040d137b430259b6b1d31ccc58c4a02a01a6eb969ea46c32a4764d58d74ef2bcf159b04f670fb94ba73750d0f5bc06
6
+ metadata.gz: 328d7a9238eb7ab5efc71e2d71702b9c938af24e07a0cbd75d60ddd1ef637e87d45a1fd17f19dc1f917f629f2b4a39269d7e243d7bc6a01ef9b4f23837888e30
7
+ data.tar.gz: 8b6440a49570f16618f81e73ccc5089694dc91f8615412ec3e4ed379737824b975fe99eef5c67413afaa40955c0bf93c660576f6051f8be1511412adfe6b5eee
@@ -32,10 +32,11 @@ module ThreeScale
32
32
  end
33
33
 
34
34
  # @api public
35
- # @return [Array<Hash>]
36
35
  # @param [Fixnum] service_id Service ID
37
- def list_applications(service_id: nil)
38
- params = service_id ? { service_id: service_id } : nil
36
+ # @param [Fixnum] plan_id Application Plan ID
37
+ # @return [Array<Hash>]
38
+ def list_applications(service_id: nil, plan_id: nil)
39
+ params = { service_id: service_id, plan_id: plan_id }.compact
39
40
  response = http_client.get('/admin/api/applications', params: params)
40
41
  extract(collection: 'applications', entity: 'application', from: response)
41
42
  end
@@ -73,6 +74,16 @@ module ThreeScale
73
74
  extract(entity: 'application', from: response)
74
75
  end
75
76
 
77
+ # @api public
78
+ # @param [Fixnum] account_id Account ID
79
+ # @param [Fixnum] id Application ID
80
+ # @param [Hash] attrs Application Attributes
81
+ # @return [Hash] an Application
82
+ def update_application(account_id, id, attrs)
83
+ response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{id}", body: attrs)
84
+ extract(entity: 'application', from: response)
85
+ end
86
+
76
87
  # @api public
77
88
  # @return [Hash] a Plan
78
89
  # @param [Fixnum] account_id Account ID
@@ -139,18 +150,40 @@ module ThreeScale
139
150
  # @return [Hash]
140
151
  # @param [Fixnum] service_id Service ID
141
152
  # @param [String] environment. Must be 'sandbox' or 'production'
142
- def proxy_config_list(service_id, environment='sandbox')
153
+ def proxy_config_list(service_id, environment = 'sandbox')
143
154
  response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}")
144
- extract(entity: 'proxy', from: response)
155
+ extract(collection: 'proxy_configs', entity: 'proxy_config', from: response)
145
156
  end
146
157
 
147
158
  # @api public
148
159
  # @return [Hash]
149
160
  # @param [Fixnum] service_id Service ID
150
161
  # @param [String] environment. Must be 'sandbox' or 'production'
151
- def proxy_config_latest(service_id, environment='sandbox')
162
+ def proxy_config_latest(service_id, environment = 'sandbox')
152
163
  response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}/latest")
153
- extract(entity: 'proxy', from: response)
164
+ extract(entity: 'proxy_config', from: response)
165
+ end
166
+
167
+ # @api public
168
+ # @return [Hash]
169
+ # @param [Fixnum] service_id Service ID
170
+ # @param [String] environment. Must be 'sandbox' or 'production'
171
+ # @param [Fixnum] proxy configuration version
172
+ def show_proxy_config(service_id, environment, version)
173
+ response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}/#{version}")
174
+ extract(entity: 'proxy_config', from: response)
175
+ end
176
+
177
+ # @api public
178
+ # @return [Hash]
179
+ # @param [Fixnum] service_id Service ID
180
+ # @param [String] environment. Must be 'sandbox' or 'production'
181
+ # @param [Fixnum] proxy configuration version to promote
182
+ # @param [Fixnum] proxy configuration to which the specified proxy configuration will be promoted to
183
+ def promote_proxy_config(service_id, environment, version, to)
184
+ response = http_client.post("/admin/api/services/#{service_id}/proxy/configs/#{environment}/#{version}/promote",
185
+ body: { to: to })
186
+ extract(entity: 'proxy_config', from: response)
154
187
  end
155
188
 
156
189
  # @api public
@@ -219,7 +252,7 @@ module ThreeScale
219
252
 
220
253
  # @api public
221
254
  # @param [Fixnum] service_id Service ID
222
- # @param [Fixnum] id Metric ID
255
+ # @param [Fixnum] id Metric ID
223
256
  # @return [Hash]
224
257
  def show_metric(service_id, id)
225
258
  response = http_client.get("/admin/api/services/#{service_id}/metrics/#{id}")
@@ -269,8 +302,8 @@ module ThreeScale
269
302
 
270
303
  # @api public
271
304
  # @param [Fixnum] service_id Service ID
272
- # @param [Fixnum] id Parent metric ID
273
- # @param [Fixnum] id Method ID
305
+ # @param [Fixnum] id Parent metric ID
306
+ # @param [Fixnum] id Method ID
274
307
  # @return [Hash]
275
308
  def show_method(service_id, parent_id, id)
276
309
  response = http_client.get("/admin/api/services/#{service_id}/metrics/#{parent_id}/methods/#{id}")
@@ -280,7 +313,7 @@ module ThreeScale
280
313
  # @api public
281
314
  # @return [Hash]
282
315
  # @param [Fixnum] service_id Service ID
283
- # @param [Fixnum] parent_id Parent metric ID
316
+ # @param [Fixnum] parent_id Parent metric ID
284
317
  # @param [Fixnum] id Method ID
285
318
  # @param [Hash] attributes Method Attributes
286
319
  def update_method(service_id, parent_id, id, attributes)
@@ -313,14 +346,13 @@ module ThreeScale
313
346
  # @api public
314
347
  # @return [Bool]
315
348
  # @param [Fixnum] service_id Service ID
316
- # @param [Fixnum] parent_id Parent metric ID
349
+ # @param [Fixnum] parent_id Parent metric ID
317
350
  # @param [Fixnum] metric_id Metric ID
318
351
  def delete_method(service_id, parent_id, id)
319
352
  http_client.delete("/admin/api/services/#{service_id}/metrics/#{parent_id}/methods/#{id}")
320
353
  true
321
354
  end
322
355
 
323
-
324
356
  # @api public
325
357
  # @param [Fixnum] application_plan_id Application Plan ID
326
358
  # @param [Fixnum] metric_id Metric ID
@@ -374,7 +406,7 @@ module ThreeScale
374
406
  # @return [Bool]
375
407
  # @param [Fixnum] service_id Service ID
376
408
  # @param [Fixnum] application_plan_id Application Plan ID
377
- def delete_application_plan(service_id,application_plan_id)
409
+ def delete_application_plan(service_id, application_plan_id)
378
410
  http_client.delete("/admin/api/services/#{service_id}/application_plans/#{application_plan_id}")
379
411
  true
380
412
  end
@@ -416,7 +448,7 @@ module ThreeScale
416
448
  # @param [Hash] attributes Limit Attributes
417
449
  def update_application_plan_limit(application_plan_id, metric_id, limit_id, attributes)
418
450
  response = http_client.put("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/limits/#{limit_id}",
419
- body: { usage_limit: attributes })
451
+ body: { usage_limit: attributes })
420
452
  extract(entity: 'limit', from: response)
421
453
  end
422
454
 
@@ -436,6 +468,14 @@ module ThreeScale
436
468
  extract(entity: 'account', from: response)
437
469
  end
438
470
 
471
+ # @api public
472
+ # @param [Fixnum] id Account Id
473
+ # @return [Hash]
474
+ def show_account(id)
475
+ response = http_client.get("/admin/api/accounts/#{id}")
476
+ extract(entity: 'account', from: response)
477
+ end
478
+
439
479
  # @api public
440
480
  # @return [Array]
441
481
  # @param [Fixnum] id Service ID
@@ -532,7 +572,7 @@ module ThreeScale
532
572
  true
533
573
  end
534
574
 
535
- # @api public
575
+ # @api public
536
576
  # @param [Fixnum] id Service ID
537
577
  # @return [Array<Hash>]
538
578
  def show_oidc(service_id)
@@ -590,7 +630,7 @@ module ThreeScale
590
630
  # @return [Hash]
591
631
  def create_service_feature(id, attributes)
592
632
  response = http_client.post("/admin/api/services/#{id}/features",
593
- body: { feature: attributes})
633
+ body: { feature: attributes })
594
634
  extract(entity: 'feature', from: response)
595
635
  end
596
636
 
@@ -623,6 +663,154 @@ module ThreeScale
623
663
  true
624
664
  end
625
665
 
666
+ # @api public
667
+ # @param [Fixnum] account_id Account ID
668
+ # @param [String] state State
669
+ # @param [String] role Role
670
+ # @return [Array<Hash>]
671
+ def list_users(account_id, state: nil, role: nil)
672
+ params = { state: state, role: role }.reject { |_, value| value.nil? }
673
+ response = http_client.get("/admin/api/accounts/#{account_id}/users", params: params)
674
+ extract(collection: 'users', entity: 'user', from: response)
675
+ end
676
+
677
+ # @api public
678
+ # @param [String] account_id Account ID
679
+ # @param [String] email User email
680
+ # @param [String] username User Username
681
+ # @param [String] password User password
682
+ # @param [Hash] attributes User Attributes
683
+ # @return [Hash]
684
+ def create_user(account_id:, email:, username:, password:, **rest)
685
+ body = { email: email, username: username, password: password }.merge(rest)
686
+ response = http_client.post("/admin/api/accounts/#{account_id}/users", body: body)
687
+ extract(entity: 'user', from: response)
688
+ end
689
+
690
+ # @api public
691
+ # @param [String] account_id Account ID
692
+ # @param [String] user_id User ID
693
+ # @return [Hash]
694
+ def activate_user(account_id, user_id)
695
+ response = http_client.put("/admin/api/accounts/#{account_id}/users/#{user_id}/activate")
696
+ extract(entity: 'user', from: response)
697
+ end
698
+
699
+ # @api public
700
+ # @param [String] account_id Account ID
701
+ # @return [Hash]
702
+ def approve_account(account_id)
703
+ response = http_client.put("/admin/api/accounts/#{account_id}/approve")
704
+ extract(entity: 'account', from: response)
705
+ end
706
+
707
+ # @api public
708
+ # @param [String] account_id Account ID
709
+ # @return [Array<Hash>]
710
+ def list_account_applications(account_id)
711
+ response = http_client.get("/admin/api/accounts/#{account_id}/applications")
712
+ extract(collection: 'applications', entity: 'application', from: response)
713
+ end
714
+
715
+ # @api public
716
+ # @return [Array<Hash]
717
+ def list_application_plans
718
+ response = http_client.get("/admin/api/application_plans")
719
+ extract(collection: 'plans', entity: 'application_plan', from: response)
720
+ end
721
+
722
+ # @api public
723
+ # @param [String] account_id Account ID
724
+ # @param [String] application_id Application ID
725
+ # @return [Array<Hash>]
726
+ def list_application_keys(account_id, application_id)
727
+ response = http_client.get("/admin/api/accounts/#{account_id}/applications/#{application_id}/keys")
728
+ extract(collection: 'keys', entity: 'key', from: response)
729
+ end
730
+
731
+ # @api public
732
+ # @param [String] account_id Account ID
733
+ # @param [String] application_id Application ID
734
+ # @param [String] key Key
735
+ # @return [Hash]
736
+ def create_application_key(account_id, application_id, key)
737
+ response = http_client.post("/admin/api/accounts/#{account_id}/applications/#{application_id}/keys", body: {key: key})
738
+ extract(entity: 'application', from: response)
739
+ end
740
+
741
+ # @api public
742
+ # @param [String] account_id Account ID
743
+ # @param [String] application_id Application ID
744
+ # @return [Hash] application Application
745
+ def accept_application(account_id, application_id)
746
+ response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/accept")
747
+ extract(entity: 'application', from: response)
748
+ end
749
+
750
+ # @api public
751
+ # @param [String] account_id Account ID
752
+ # @param [String] application_id Application ID
753
+ # @return [Hash] application Application
754
+ def suspend_application(account_id, application_id)
755
+ response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/suspend")
756
+ extract(entity: 'application', from: response)
757
+ end
758
+
759
+ # @api public
760
+ # @param [String] account_id Account ID
761
+ # @param [String] application_id Application ID
762
+ # @return [Hash] application Application
763
+ def resume_application(account_id, application_id)
764
+ response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/resume")
765
+ extract(entity: 'application', from: response)
766
+ end
767
+
768
+ # @api public
769
+ # @return [Array<Hash>]
770
+ def list_policy_registry
771
+ response = http_client.get('/admin/api/registry/policies')
772
+ extract(collection: 'policies', entity: 'policy', from: response)
773
+ end
774
+
775
+ # @api public
776
+ # @param [Hash] attributes Policy Registry Attributes
777
+ # @return [Hash]
778
+ def create_policy_registry(attributes)
779
+ response = http_client.post('/admin/api/registry/policies', body: attributes)
780
+ extract(entity: 'policy', from: response)
781
+ end
782
+
783
+ # @api public
784
+ # @return [Hash]
785
+ # @param [Fixnum] id Policy Registry Id
786
+ def show_policy_registry(id)
787
+ response = http_client.get("/admin/api/registry/policies/#{id}")
788
+ extract(entity: 'policy', from: response)
789
+ end
790
+
791
+ # @api public
792
+ # @return [Hash]
793
+ # @param [Fixnum] id Policy Registry Id
794
+ # @param [Hash] attributes Policy Registry Attributes
795
+ def update_policy_registry(id, attributes)
796
+ response = http_client.put("/admin/api/registry/policies/#{id}", body: attributes)
797
+ extract(entity: 'policy', from: response)
798
+ end
799
+
800
+ # @api public
801
+ # @param [Fixnum] id Policy Registry Id
802
+ def delete_policy_registry(id)
803
+ http_client.delete("/admin/api/registry/policies/#{id}")
804
+ true
805
+ end
806
+
807
+ # @api public
808
+ # @return [Hash]
809
+ def show_provider
810
+ response = http_client.get('/admin/api/provider')
811
+ extract(entity: 'account', from: response)
812
+ end
813
+
626
814
  protected
627
815
 
628
816
  def extract(collection: nil, entity:, from:)
@@ -1,5 +1,5 @@
1
1
  module ThreeScale
2
2
  module API
3
- VERSION = '0.4.0'.freeze
3
+ VERSION = '0.5.0'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: 3scale-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michal Cichra
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2019-05-13 00:00:00.000000000 Z
12
+ date: 2019-06-07 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler