3scale-api 0.6.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|