lib/3scale/api/client.rb in 3scale-api-0.1.9 vs lib/3scale/api/client.rb in 3scale-api-0.2.0
- old
+ new
@@ -136,10 +136,28 @@
end
# @api public
# @return [Hash]
# @param [Fixnum] service_id Service ID
+ # @param [String] environment. Must be 'sandbox' or 'production'
+ def proxy_config_list(service_id, environment='sandbox')
+ response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}")
+ extract(entity: 'proxy', from: response)
+ end
+
+ # @api public
+ # @return [Hash]
+ # @param [Fixnum] service_id Service ID
+ # @param [String] environment. Must be 'sandbox' or 'production'
+ def proxy_config_latest(service_id, environment='sandbox')
+ response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}/latest")
+ extract(entity: 'proxy', from: response)
+ end
+
+ # @api public
+ # @return [Hash]
+ # @param [Fixnum] service_id Service ID
def update_proxy(service_id, attributes)
response = http_client.patch("/admin/api/services/#{service_id}/proxy",
body: { proxy: attributes })
extract(entity: 'proxy', from: response)
end
@@ -256,12 +274,31 @@
response = http_client.post("/admin/api/services/#{service_id}/application_plans",
body: { application_plan: attributes })
extract(entity: 'application_plan', from: response)
end
+ # @api public
+ # @param [Fixnum] id Service ID
+ # @param [Fixnum] id Application Plan ID
+ # @return [Hash]
+ def show_application_plan(service_id, id)
+ response = http_client.get("/admin/api/services/#{service_id}/application_plans/#{id}")
+ extract(entity: 'application_plan', from: response)
+ end
# @api public
+ # @param [Fixnum] service_id Service ID
+ # @param [Fixnum] id Application Plan ID
+ # @param [Hash] attributes Application Plan Attributes
+ # @return [Hash]
+ def update_application_plan(service_id, id, attributes)
+ response = http_client.patch("/admin/api/services/#{service_id}/application_plans/#{id}",
+ body: { application_plan: attributes })
+ extract(entity: 'application_plan', from: response)
+ end
+
+ # @api public
# @return [Bool]
# @param [Fixnum] service_id Service ID
# @param [Fixnum] application_plan_id Application Plan ID
def delete_application_plan(service_id,application_plan_id)
http_client.delete("/admin/api/services/#{service_id}/application_plans/#{application_plan_id}")
@@ -415,9 +452,83 @@
# @return [Hash]
def update_oidc(service_id, attributes)
response = http_client.patch("/admin/api/services/#{service_id}/proxy/oidc_configuration",
body: { oidc_configuration: attributes })
extract(entity: 'oidc_configuration', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] application_plan_id Application Plan ID
+ # @return [Array<Hash>]
+ def list_features_per_application_plan(application_plan_id)
+ response = http_client.get("/admin/api/application_plans/#{application_plan_id}/features")
+ extract(collection: 'features', entity: 'feature', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] application_plan_id Application Plan ID
+ # @param [Fixnum] id Feature ID
+ # @return [Hash]
+ def create_application_plan_feature(application_plan_id, id)
+ response = http_client.post("/admin/api/application_plans/#{application_plan_id}/features",
+ body: { feature_id: id })
+ extract(entity: 'feature', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] application_plan_id Application Plan ID
+ # @param [Fixnum] id Feature ID
+ # @return [Boolean]
+ def delete_application_plan_feature(application_plan_id, id)
+ http_client.delete("/admin/api/application_plans/#{application_plan_id}/features/#{id}")
+ true
+ end
+
+ # @api public
+ # @param [Fixnum] id Service ID
+ # @return [Array<Hash>]
+ def list_service_features(id)
+ response = http_client.get("/admin/api/services/#{id}/features")
+ extract(collection: 'features', entity: 'feature', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] id Service ID
+ # @param [Hash] attributes Feature Attributes
+ # @return [Hash]
+ def create_service_feature(id, attributes)
+ response = http_client.post("/admin/api/services/#{id}/features",
+ body: { feature: attributes})
+ extract(entity: 'feature', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] service_id Service ID
+ # @param [Fixnum] id Feature ID
+ # @return [Hash]
+ def show_service_feature(service_id, id)
+ response = http_client.get("/admin/api/services/#{service_id}/features/#{id}")
+ extract(entity: 'feature', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] service_id Service ID
+ # @param [Fixnum] id Feature ID
+ # @param [Hash] attributes Feature Attributes
+ # @return [Hash]
+ def update_service_feature(service_id, id, attributes)
+ response = http_client.put("/admin/api/services/#{service_id}/features/#{id}",
+ body: { feature: attributes })
+ extract(entity: 'feature', from: response)
+ end
+
+ # @api public
+ # @param [Fixnum] service_id Service ID
+ # @param [Fixnum] id Feature ID
+ # @return [Boolean]
+ def delete_service_feature(service_id, id)
+ http_client.delete("/admin/api/services/#{service_id}/features/#{id}")
+ true
end
protected
def extract(collection: nil, entity:, from:)