3scale-api 0.6.0 → 1.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/lib/3scale/api.rb +1 -0
- data/lib/3scale/api/client.rb +240 -14
- data/lib/3scale/api/errors.rb +12 -0
- data/lib/3scale/api/http_client.rb +7 -7
- data/lib/3scale/api/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: be3beb90baf28a00d7d45d780bea0f406a275b8163aec1a7eceade2db378d3e1
|
4
|
+
data.tar.gz: ae228c7f369e201517de850bd0c952496172083ecc1f6615bb26400d72b0d25a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: aa359d57c8c639612236799e52688013a823f84f7668aeeef585e65ebf886c17755264e1b7fab851c98a72e9ab4dcd9c34492f3801c2ddcb1b83d21c2376a575
|
7
|
+
data.tar.gz: e9ecd33300d1e7bf86d1c0d061e7d884483858d2e3756176885424c157a9f99c21f2230e30f0d941403372fdb0e921b15e268384d0d04f981905920646b79cd8
|
data/lib/3scale/api.rb
CHANGED
data/lib/3scale/api/client.rb
CHANGED
@@ -173,7 +173,7 @@ module ThreeScale
|
|
173
173
|
# @return [Hash]
|
174
174
|
# @param [Fixnum] service_id Service ID
|
175
175
|
# @param [String] environment. Must be 'sandbox' or 'production'
|
176
|
-
# @param [Fixnum]
|
176
|
+
# @param [Fixnum] version Proxy configuration version
|
177
177
|
def show_proxy_config(service_id, environment, version)
|
178
178
|
response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}/#{version}")
|
179
179
|
extract(entity: 'proxy_config', from: response)
|
@@ -182,9 +182,9 @@ module ThreeScale
|
|
182
182
|
# @api public
|
183
183
|
# @return [Hash]
|
184
184
|
# @param [Fixnum] service_id Service ID
|
185
|
-
# @param [String] environment
|
186
|
-
# @param [Fixnum]
|
187
|
-
# @param [Fixnum]
|
185
|
+
# @param [String] environment Must be 'sandbox' or 'production'
|
186
|
+
# @param [Fixnum] version Version to promote
|
187
|
+
# @param [Fixnum] to To which the specified proxy configuration will be promoted to
|
188
188
|
def promote_proxy_config(service_id, environment, version, to)
|
189
189
|
response = http_client.post("/admin/api/services/#{service_id}/proxy/configs/#{environment}/#{version}/promote",
|
190
190
|
body: { to: to })
|
@@ -307,7 +307,7 @@ module ThreeScale
|
|
307
307
|
|
308
308
|
# @api public
|
309
309
|
# @param [Fixnum] service_id Service ID
|
310
|
-
# @param [Fixnum]
|
310
|
+
# @param [Fixnum] parent_id Parent metric ID
|
311
311
|
# @param [Fixnum] id Method ID
|
312
312
|
# @return [Hash]
|
313
313
|
def show_method(service_id, parent_id, id)
|
@@ -352,7 +352,7 @@ module ThreeScale
|
|
352
352
|
# @return [Bool]
|
353
353
|
# @param [Fixnum] service_id Service ID
|
354
354
|
# @param [Fixnum] parent_id Parent metric ID
|
355
|
-
# @param [Fixnum]
|
355
|
+
# @param [Fixnum] id Metric ID
|
356
356
|
def delete_method(service_id, parent_id, id)
|
357
357
|
http_client.delete("/admin/api/services/#{service_id}/metrics/#{parent_id}/methods/#{id}")
|
358
358
|
true
|
@@ -388,7 +388,7 @@ module ThreeScale
|
|
388
388
|
end
|
389
389
|
|
390
390
|
# @api public
|
391
|
-
# @param [Fixnum]
|
391
|
+
# @param [Fixnum] service_id Service ID
|
392
392
|
# @param [Fixnum] id Application Plan ID
|
393
393
|
# @return [Hash]
|
394
394
|
def show_application_plan(service_id, id)
|
@@ -466,7 +466,7 @@ module ThreeScale
|
|
466
466
|
end
|
467
467
|
|
468
468
|
# @api public
|
469
|
-
# @param [Hash]
|
469
|
+
# @param [Hash] criteria Search parameters
|
470
470
|
# @return [Hash]
|
471
471
|
def find_account(criteria)
|
472
472
|
response = http_client.get('/admin/api/accounts/find', params: criteria)
|
@@ -561,7 +561,7 @@ module ThreeScale
|
|
561
561
|
end
|
562
562
|
|
563
563
|
# @api public
|
564
|
-
# @param [Fixnum]
|
564
|
+
# @param [Fixnum] id Account ID
|
565
565
|
# @return [Bool]
|
566
566
|
def delete_account(id)
|
567
567
|
http_client.delete("/admin/api/accounts/#{id}")
|
@@ -570,7 +570,7 @@ module ThreeScale
|
|
570
570
|
|
571
571
|
# @api public
|
572
572
|
# @param [Fixnum] account_id Account ID
|
573
|
-
# @param [Fixnum]
|
573
|
+
# @param [Fixnum] id Application ID
|
574
574
|
# @return [Bool]
|
575
575
|
def delete_application(account_id, id)
|
576
576
|
http_client.delete("/admin/api/accounts/#{account_id}/applications/#{id}")
|
@@ -578,7 +578,7 @@ module ThreeScale
|
|
578
578
|
end
|
579
579
|
|
580
580
|
# @api public
|
581
|
-
# @param [Fixnum]
|
581
|
+
# @param [Fixnum] service_id Service ID
|
582
582
|
# @return [Array<Hash>]
|
583
583
|
def show_oidc(service_id)
|
584
584
|
response = http_client.get("/admin/api/services/#{service_id}/proxy/oidc_configuration")
|
@@ -586,7 +586,7 @@ module ThreeScale
|
|
586
586
|
end
|
587
587
|
|
588
588
|
# @api public
|
589
|
-
# @param [Fixnum]
|
589
|
+
# @param [Fixnum] service_id Service ID
|
590
590
|
# @return [Hash]
|
591
591
|
def update_oidc(service_id, attributes)
|
592
592
|
response = http_client.patch("/admin/api/services/#{service_id}/proxy/oidc_configuration",
|
@@ -717,7 +717,7 @@ module ThreeScale
|
|
717
717
|
extract(collection: 'applications', entity: 'application', from: response)
|
718
718
|
end
|
719
719
|
|
720
|
-
# @api public
|
720
|
+
# @api public
|
721
721
|
# @return [Array<Hash]
|
722
722
|
def list_application_plans
|
723
723
|
response = http_client.get("/admin/api/application_plans")
|
@@ -760,7 +760,7 @@ module ThreeScale
|
|
760
760
|
response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/suspend")
|
761
761
|
extract(entity: 'application', from: response)
|
762
762
|
end
|
763
|
-
|
763
|
+
|
764
764
|
# @api public
|
765
765
|
# @param [String] account_id Account ID
|
766
766
|
# @param [String] application_id Application ID
|
@@ -816,6 +816,232 @@ module ThreeScale
|
|
816
816
|
extract(entity: 'account', from: response)
|
817
817
|
end
|
818
818
|
|
819
|
+
# @api public
|
820
|
+
# @return [List]
|
821
|
+
def list_backends
|
822
|
+
response = http_client.get('/admin/api/backend_apis')
|
823
|
+
extract(collection: 'backend_apis', entity: 'backend_api', from: response)
|
824
|
+
end
|
825
|
+
|
826
|
+
# @api public
|
827
|
+
# @param [Hash] attributes Backend attributes
|
828
|
+
# @return [Hash]
|
829
|
+
def create_backend(attributes)
|
830
|
+
response = http_client.post('/admin/api/backend_apis', body: attributes)
|
831
|
+
extract(entity: 'backend_api', from: response)
|
832
|
+
end
|
833
|
+
|
834
|
+
# @api public
|
835
|
+
# @param [Fixnum] id Backend ID
|
836
|
+
def delete_backend(id)
|
837
|
+
http_client.delete("/admin/api/backend_apis/#{id}")
|
838
|
+
true
|
839
|
+
end
|
840
|
+
|
841
|
+
# @api public
|
842
|
+
# @param [Fixnum] id Backend ID
|
843
|
+
# @return [Hash]
|
844
|
+
def backend(id)
|
845
|
+
response = http_client.get("/admin/api/backend_apis/#{id}")
|
846
|
+
extract(entity: 'backend_api', from: response)
|
847
|
+
end
|
848
|
+
|
849
|
+
# @api public
|
850
|
+
# @param [Fixnum] id Backend ID
|
851
|
+
# @param [Hash] attributes Backend attributes
|
852
|
+
# @return [Hash]
|
853
|
+
def update_backend(id, attributes)
|
854
|
+
response = http_client.put("/admin/api/backend_apis/#{id}", body: attributes)
|
855
|
+
extract(entity: 'backend_api', from: response)
|
856
|
+
end
|
857
|
+
|
858
|
+
# @api public
|
859
|
+
# @param [Fixnum] id Backend ID
|
860
|
+
# @return [List]
|
861
|
+
def list_backend_metrics(id)
|
862
|
+
response = http_client.get("/admin/api/backend_apis/#{id}/metrics")
|
863
|
+
extract(collection: 'metrics', entity: 'metric', from: response)
|
864
|
+
end
|
865
|
+
|
866
|
+
# @api public
|
867
|
+
# @param [Fixnum] id Backend ID
|
868
|
+
# @param [Hash] attributes Metric attributes
|
869
|
+
# @return [Hash]
|
870
|
+
def create_backend_metric(id, attrs)
|
871
|
+
response = http_client.post("/admin/api/backend_apis/#{id}/metrics", body: attrs)
|
872
|
+
extract(entity: 'metric', from: response)
|
873
|
+
end
|
874
|
+
|
875
|
+
# @api public
|
876
|
+
# @param [Fixnum] backend_id Backend ID
|
877
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
878
|
+
def delete_backend_metric(backend_id, metric_id)
|
879
|
+
http_client.delete("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}")
|
880
|
+
true
|
881
|
+
end
|
882
|
+
|
883
|
+
# @api public
|
884
|
+
# @param [Fixnum] backend_id Backend ID
|
885
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
886
|
+
# @return [Hash]
|
887
|
+
def backend_metric(backend_id, metric_id)
|
888
|
+
response = http_client.get("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}")
|
889
|
+
extract(entity: 'metric', from: response)
|
890
|
+
end
|
891
|
+
|
892
|
+
# @api public
|
893
|
+
# @param [Fixnum] backend_id Backend ID
|
894
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
895
|
+
# @param [Hash] attributes Backend attributes
|
896
|
+
# @return [Hash]
|
897
|
+
def update_backend_metric(backend_id, metric_id, attributes)
|
898
|
+
response = http_client.put("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}", body: attributes)
|
899
|
+
extract(entity: 'metric', from: response)
|
900
|
+
end
|
901
|
+
|
902
|
+
# @api public
|
903
|
+
# @param [Fixnum] backend_id Backend ID
|
904
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
905
|
+
# @return [List]
|
906
|
+
def list_backend_methods(backend_id, metric_id)
|
907
|
+
response = http_client.get("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods")
|
908
|
+
extract(collection: 'methods', entity: 'method', from: response)
|
909
|
+
end
|
910
|
+
|
911
|
+
# @api public
|
912
|
+
# @param [Fixnum] backend_id Backend ID
|
913
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
914
|
+
# @param [Hash] attributes Metric attributes
|
915
|
+
# @return [Hash]
|
916
|
+
def create_backend_method(backend_id, metric_id, attrs)
|
917
|
+
response = http_client.post("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods",
|
918
|
+
body: attrs)
|
919
|
+
extract(entity: 'method', from: response)
|
920
|
+
end
|
921
|
+
|
922
|
+
# @api public
|
923
|
+
# @param [Fixnum] backend_id Backend ID
|
924
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
925
|
+
# @param [Fixnum] method_id Backend Method ID
|
926
|
+
def delete_backend_method(backend_id, metric_id, method_id)
|
927
|
+
http_client.delete("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods/#{method_id}")
|
928
|
+
true
|
929
|
+
end
|
930
|
+
|
931
|
+
# @api public
|
932
|
+
# @param [Fixnum] backend_id Backend ID
|
933
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
934
|
+
# @param [Fixnum] method_id Backend Method ID
|
935
|
+
# @return [Hash]
|
936
|
+
def backend_method(backend_id, metric_id, method_id)
|
937
|
+
response = http_client.get("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods/#{method_id}")
|
938
|
+
extract(entity: 'method', from: response)
|
939
|
+
end
|
940
|
+
|
941
|
+
# @api public
|
942
|
+
# @param [Fixnum] backend_id Backend ID
|
943
|
+
# @param [Fixnum] metric_id Backend Metric ID
|
944
|
+
# @param [Fixnum] method_id Backend Method ID
|
945
|
+
# @param [Hash] attributes Backend attributes
|
946
|
+
# @return [Hash]
|
947
|
+
def update_backend_method(backend_id, metric_id, method_id, attributes)
|
948
|
+
response = http_client.put("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods/#{method_id}",
|
949
|
+
body: attributes)
|
950
|
+
extract(entity: 'method', from: response)
|
951
|
+
end
|
952
|
+
|
953
|
+
# @api public
|
954
|
+
# @param [Fixnum] backend_id Backend ID
|
955
|
+
# @return [List]
|
956
|
+
def list_backend_mapping_rules(backend_id)
|
957
|
+
response = http_client.get("/admin/api/backend_apis/#{backend_id}/mapping_rules")
|
958
|
+
extract(collection: 'mapping_rules', entity: 'mapping_rule', from: response)
|
959
|
+
end
|
960
|
+
|
961
|
+
# @api public
|
962
|
+
# @param [Fixnum] backend_id Backend ID
|
963
|
+
# @param [Hash] attrs Metric attributes
|
964
|
+
# @return [Hash]
|
965
|
+
def create_backend_mapping_rule(backend_id, attrs)
|
966
|
+
response = http_client.post("/admin/api/backend_apis/#{backend_id}/mapping_rules",
|
967
|
+
body: attrs)
|
968
|
+
extract(entity: 'mapping_rule', from: response)
|
969
|
+
end
|
970
|
+
|
971
|
+
# @api public
|
972
|
+
# @param [Fixnum] backend_id Backend ID
|
973
|
+
# @param [Fixnum] mapping_rule_id MappingRule ID
|
974
|
+
def delete_backend_mapping_rule(backend_id, mapping_rule_id)
|
975
|
+
http_client.delete("/admin/api/backend_apis/#{backend_id}/mapping_rules/#{mapping_rule_id}")
|
976
|
+
true
|
977
|
+
end
|
978
|
+
|
979
|
+
# @api public
|
980
|
+
# @param [Fixnum] backend_id Backend ID
|
981
|
+
# @param [Fixnum] mapping_rule_id MappingRule ID
|
982
|
+
# @return [Hash]
|
983
|
+
def backend_mapping_rule(backend_id, mapping_rule_id)
|
984
|
+
response = http_client.get("/admin/api/backend_apis/#{backend_id}/mapping_rules/#{mapping_rule_id}")
|
985
|
+
extract(entity: 'mapping_rule', from: response)
|
986
|
+
end
|
987
|
+
|
988
|
+
# @api public
|
989
|
+
# @param [Fixnum] backend_id Backend ID
|
990
|
+
# @param [Fixnum] mapping_rule_id MappingRule ID
|
991
|
+
# @param [Hash] attributes Backend attributes
|
992
|
+
# @return [Hash]
|
993
|
+
def update_backend_mapping_rule(backend_id, mapping_rule_id, attributes)
|
994
|
+
response = http_client.put("/admin/api/backend_apis/#{backend_id}/mapping_rules/#{mapping_rule_id}",
|
995
|
+
body: attributes)
|
996
|
+
extract(entity: 'mapping_rule', from: response)
|
997
|
+
end
|
998
|
+
|
999
|
+
# @api public
|
1000
|
+
# @param [Fixnum] product_id Product ID
|
1001
|
+
# @return [List]
|
1002
|
+
def list_backend_usages(product_id)
|
1003
|
+
response = http_client.get("/admin/api/services/#{product_id}/backend_usages")
|
1004
|
+
extract(entity: 'backend_usage', from: response)
|
1005
|
+
end
|
1006
|
+
|
1007
|
+
# @api public
|
1008
|
+
# @param [Fixnum] product_id Product ID
|
1009
|
+
# @param [Hash] attrs Backend Usage attributes
|
1010
|
+
# @return [Hash]
|
1011
|
+
def create_backend_usage(product_id, attrs)
|
1012
|
+
response = http_client.post("/admin/api/services/#{product_id}/backend_usages",
|
1013
|
+
body: attrs)
|
1014
|
+
extract(entity: 'backend_usage', from: response)
|
1015
|
+
end
|
1016
|
+
|
1017
|
+
# @api public
|
1018
|
+
# @param [Fixnum] product_id Product ID
|
1019
|
+
# @param [Fixnum] id Backend Usage ID
|
1020
|
+
def delete_backend_usage(product_id, id)
|
1021
|
+
http_client.delete("/admin/api/services/#{product_id}/backend_usages/#{id}")
|
1022
|
+
true
|
1023
|
+
end
|
1024
|
+
|
1025
|
+
# @api public
|
1026
|
+
# @param [Fixnum] product_id Product ID
|
1027
|
+
# @param [Fixnum] id Backend Usage ID
|
1028
|
+
# @return [Hash]
|
1029
|
+
def backend_usage(product_id, id)
|
1030
|
+
response = http_client.get("/admin/api/services/#{product_id}/backend_usages/#{id}")
|
1031
|
+
extract(entity: 'backend_usage', from: response)
|
1032
|
+
end
|
1033
|
+
|
1034
|
+
# @api public
|
1035
|
+
# @param [Fixnum] product_id Product ID
|
1036
|
+
# @param [Fixnum] id Backend Usage ID
|
1037
|
+
# @param [Hash] attrs Backend Usage attributes
|
1038
|
+
# @return [Hash]
|
1039
|
+
def update_backend_usage(product_id, id, attrs)
|
1040
|
+
response = http_client.put("/admin/api/services/#{product_id}/backend_usages/#{id}",
|
1041
|
+
body: attrs)
|
1042
|
+
extract(entity: 'backend_usage', from: response)
|
1043
|
+
end
|
1044
|
+
|
819
1045
|
protected
|
820
1046
|
|
821
1047
|
def extract(collection: nil, entity:, from:)
|
@@ -58,26 +58,26 @@ module ThreeScale
|
|
58
58
|
when Net::HTTPUnprocessableEntity, Net::HTTPSuccess then parser.decode(response.body)
|
59
59
|
when Net::HTTPForbidden then forbidden!(response)
|
60
60
|
when Net::HTTPNotFound then notfound!(response)
|
61
|
-
else unexpected!(response
|
61
|
+
else unexpected!(response)
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
65
|
-
class ForbiddenError <
|
65
|
+
class ForbiddenError < ResponseError; end
|
66
66
|
|
67
|
-
class UnexpectedResponseError <
|
67
|
+
class UnexpectedResponseError < ResponseError; end
|
68
68
|
|
69
|
-
class NotFoundError <
|
69
|
+
class NotFoundError < ResponseError; end
|
70
70
|
|
71
71
|
def forbidden!(response)
|
72
|
-
raise ForbiddenError
|
72
|
+
raise ForbiddenError.new(response)
|
73
73
|
end
|
74
74
|
|
75
75
|
def notfound!(response)
|
76
|
-
raise NotFoundError
|
76
|
+
raise NotFoundError.new(response)
|
77
77
|
end
|
78
78
|
|
79
79
|
def unexpected!(response)
|
80
|
-
raise UnexpectedResponseError, response
|
80
|
+
raise UnexpectedResponseError.new(response, response.inspect)
|
81
81
|
end
|
82
82
|
|
83
83
|
def serialize(body)
|
data/lib/3scale/api/version.rb
CHANGED
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
|
+
version: 1.0.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:
|
12
|
+
date: 2020-01-23 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -78,6 +78,7 @@ files:
|
|
78
78
|
- README.md
|
79
79
|
- lib/3scale/api.rb
|
80
80
|
- lib/3scale/api/client.rb
|
81
|
+
- lib/3scale/api/errors.rb
|
81
82
|
- lib/3scale/api/http_client.rb
|
82
83
|
- lib/3scale/api/version.rb
|
83
84
|
- lib/three_scale/api.rb
|