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:)