class ThreeScale::API::Client

Attributes

http_client[R]

Public Class Methods

new(http_client) click to toggle source

@param [ThreeScale::API::HttpClient] http_client

# File lib/3scale/api/client.rb, line 11
def initialize(http_client)
  @http_client = http_client
end

Public Instance Methods

accept_application(account_id, application_id) click to toggle source

@api public @param [String] account_id Account ID @param [String] application_id Application ID @return [Hash] application Application

# File lib/3scale/api/client.rb, line 772
def accept_application(account_id, application_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/accept")
  extract(entity: 'application', from: response)
end
activate_user(account_id, user_id) click to toggle source

@api public @param [String] account_id Account ID @param [String] user_id User ID @return [Hash]

# File lib/3scale/api/client.rb, line 721
def activate_user(account_id, user_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/users/#{user_id}/activate")
  extract(entity: 'user', from: response)
end
application_plan_as_default(service_id, application_plan_id) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] application_plan_id Application Plan ID @return [Hash]

# File lib/3scale/api/client.rb, line 435
def application_plan_as_default(service_id, application_plan_id)
  response = http_client.put("/admin/api/services/#{service_id}/application_plans/#{application_plan_id}/default")
  extract(entity: 'application_plan', from: response)
end
approve_account(account_id) click to toggle source

@api public @param [String] account_id Account ID @return [Hash]

# File lib/3scale/api/client.rb, line 729
def approve_account(account_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/approve")
  extract(entity: 'account', from: response)
end
backend(id) click to toggle source

@api public @param [Fixnum] id Backend ID @return [Hash]

# File lib/3scale/api/client.rb, line 866
def backend(id)
  response = http_client.get("/admin/api/backend_apis/#{id}")
  extract(entity: 'backend_api', from: response)
end
backend_mapping_rule(backend_id, mapping_rule_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] mapping_rule_id MappingRule ID @return [Hash]

# File lib/3scale/api/client.rb, line 1005
def backend_mapping_rule(backend_id, mapping_rule_id)
  response = http_client.get("/admin/api/backend_apis/#{backend_id}/mapping_rules/#{mapping_rule_id}")
  extract(entity: 'mapping_rule', from: response)
end
backend_method(backend_id, metric_id, method_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @param [Fixnum] method_id Backend Method ID @return [Hash]

# File lib/3scale/api/client.rb, line 958
def backend_method(backend_id, metric_id, method_id)
  response = http_client.get("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods/#{method_id}")
  extract(entity: 'method', from: response)
end
backend_metric(backend_id, metric_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @return [Hash]

# File lib/3scale/api/client.rb, line 909
def backend_metric(backend_id, metric_id)
  response = http_client.get("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}")
  extract(entity: 'metric', from: response)
end
backend_usage(product_id, id) click to toggle source

@api public @param [Fixnum] product_id Product ID @param [Fixnum] id Backend Usage ID @return [Hash]

# File lib/3scale/api/client.rb, line 1051
def backend_usage(product_id, id)
  response = http_client.get("/admin/api/services/#{product_id}/backend_usages/#{id}")
  extract(entity: 'backend_usage', from: response)
end
create_activedocs(attributes) click to toggle source

@api public @param [Hash] attributes ActiveDocs attributes @return [Hash]

# File lib/3scale/api/client.rb, line 557
def create_activedocs(attributes)
  response = http_client.post('/admin/api/active_docs', body: attributes)
  extract(entity: 'api_doc', from: response)
end
create_application(account_id, attributes = {}, plan_id:, **rest) click to toggle source

@api public @return [Hash] an Application @param [Fixnum] plan_id Application Plan ID @param [Hash] attributes Application Attributes @option attributes [String] :name Application Name @option attributes [String] :description Application Description @option attributes [String] :user_key Application User Key @option attributes [String] :application_id Application App ID @option attributes [String] :application_key Application App Key(s)

# File lib/3scale/api/client.rb, line 79
def create_application(account_id, attributes = {}, plan_id:, **rest)
  body = { plan_id: plan_id }.merge(attributes).merge(rest)
  response = http_client.post("/admin/api/accounts/#{account_id}/applications", body: body)
  extract(entity: 'application', from: response)
end
create_application_key(account_id, application_id, key) click to toggle source

@api public @param [String] account_id Account ID @param [String] application_id Application ID @param [String] key Key @return [Hash]

# File lib/3scale/api/client.rb, line 763
def create_application_key(account_id, application_id, key)
  response = http_client.post("/admin/api/accounts/#{account_id}/applications/#{application_id}/keys", body: {key: key})
  extract(entity: 'application', from: response)
end
create_application_plan(service_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [Hash] attributes Metric Attributes @option attributes [String] :name Application Plan Name

# File lib/3scale/api/client.rb, line 396
def create_application_plan(service_id, attributes)
  response = http_client.post("/admin/api/services/#{service_id}/application_plans",
                              body: { application_plan: attributes })
  extract(entity: 'application_plan', from: response)
end
create_application_plan_feature(application_plan_id, id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] id Feature ID @return [Hash]

# File lib/3scale/api/client.rb, line 631
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
create_application_plan_limit(application_plan_id, metric_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] metric_id Metric ID @param [Hash] attributes Limit Attributes

# File lib/3scale/api/client.rb, line 454
def create_application_plan_limit(application_plan_id, metric_id, attributes)
  response = http_client.post("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/limits",
                              body: { usage_limit: attributes })
  extract(entity: 'limit', from: response)
end
create_backend(attributes) click to toggle source

@api public @param [Hash] attributes Backend attributes @return [Hash]

# File lib/3scale/api/client.rb, line 851
def create_backend(attributes)
  response = http_client.post('/admin/api/backend_apis', body: attributes)
  extract(entity: 'backend_api', from: response)
end
create_backend_mapping_rule(backend_id, attrs) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Hash] attrs Metric attributes @return [Hash]

# File lib/3scale/api/client.rb, line 987
def create_backend_mapping_rule(backend_id, attrs)
  response = http_client.post("/admin/api/backend_apis/#{backend_id}/mapping_rules",
                              body: attrs)
  extract(entity: 'mapping_rule', from: response)
end
create_backend_method(backend_id, metric_id, attrs) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @param [Hash] attributes Metric attributes @return [Hash]

# File lib/3scale/api/client.rb, line 938
def create_backend_method(backend_id, metric_id, attrs)
  response = http_client.post("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods",
                              body: attrs)
  extract(entity: 'method', from: response)
end
create_backend_metric(id, attrs) click to toggle source

@api public @param [Fixnum] id Backend ID @param [Hash] attributes Metric attributes @return [Hash]

# File lib/3scale/api/client.rb, line 892
def create_backend_metric(id, attrs)
  response = http_client.post("/admin/api/backend_apis/#{id}/metrics", body: attrs)
  extract(entity: 'metric', from: response)
end
create_backend_usage(product_id, attrs) click to toggle source

@api public @param [Fixnum] product_id Product ID @param [Hash] attrs Backend Usage attributes @return [Hash]

# File lib/3scale/api/client.rb, line 1033
def create_backend_usage(product_id, attrs)
  response = http_client.post("/admin/api/services/#{product_id}/backend_usages",
                              body: attrs)
  extract(entity: 'backend_usage', from: response)
end
create_mapping_rule(service_id, attributes) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID @param [Hash] attributes Mapping Rule Attributes @option attributes [String] :http_method HTTP Method @option attributes [String] :pattern Pattern @option attributes [Fixnum] :delta Increase the metric by delta. @option attributes [Fixnum] :metric_id Metric ID

# File lib/3scale/api/client.rb, line 240
def create_mapping_rule(service_id, attributes)
  response = http_client.post("/admin/api/services/#{service_id}/proxy/mapping_rules",
                              body: { mapping_rule: attributes })
  extract(entity: 'mapping_rule', from: response)
end
create_method(service_id, metric_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [Fixnum] metric_id Metric ID @param [Hash] attributes Metric Attributes @option attributes [String] :name Method Name

# File lib/3scale/api/client.rb, line 357
def create_method(service_id, metric_id, attributes)
  response = http_client.post("/admin/api/services/#{service_id}/metrics/#{metric_id}/methods",
                              body: { metric: attributes })
  extract(entity: 'method', from: response)
end
create_metric(service_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [Hash] attributes Metric Attributes @option attributes [String] :name Metric Name

# File lib/3scale/api/client.rb, line 292
def create_metric(service_id, attributes)
  response = http_client.post("/admin/api/services/#{service_id}/metrics", body: { metric: attributes })
  extract(entity: 'metric', from: response)
end
create_policy_registry(attributes) click to toggle source

@api public @param [Hash] attributes Policy Registry Attributes @return [Hash]

# File lib/3scale/api/client.rb, line 805
def create_policy_registry(attributes)
  response = http_client.post('/admin/api/registry/policies', body: attributes)
  extract(entity: 'policy', from: response)
end
create_pricingrule(application_plan_id, metric_id, attributes) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 532
def create_pricingrule(application_plan_id, metric_id, attributes)
  response = http_client.post("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/pricing_rules", body: attributes)
  extract(entity: 'pricing_rule', from: response)
end
create_service(attributes) click to toggle source

@api public @return [Hash] @param [Hash] attributes Service Attributes @option attributes [String] :name Service Name

# File lib/3scale/api/client.rb, line 134
def create_service(attributes)
  response = http_client.post('/admin/api/services', body: { service: attributes })
  extract(entity: 'service', from: response)
end
create_service_feature(id, attributes) click to toggle source

@api public @param [Fixnum] id Service ID @param [Hash] attributes Feature Attributes @return [Hash]

# File lib/3scale/api/client.rb, line 658
def create_service_feature(id, attributes)
  response = http_client.post("/admin/api/services/#{id}/features",
                              body: { feature: attributes })
  extract(entity: 'feature', from: response)
end
create_user(account_id:, email:, username:, password:, **rest) click to toggle source

@api public @param [String] account_id Account ID @param [String] email User email @param [String] username User Username @param [String] password User password @param [Hash] attributes User Attributes @return [Hash]

# File lib/3scale/api/client.rb, line 711
def create_user(account_id:, email:, username:, password:, **rest)
  body = { email: email, username: username, password: password }.merge(rest)
  response = http_client.post("/admin/api/accounts/#{account_id}/users", body: body)
  extract(entity: 'user', from: response)
end
customize_application_plan(account_id, application_id) click to toggle source

@api public @return [Hash] a Plan @param [Fixnum] account_id Account ID @param [Fixnum] application_id Application ID

# File lib/3scale/api/client.rb, line 99
def customize_application_plan(account_id, application_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/customize_plan")
  extract(entity: 'application_plan', from: response)
end
delete_account(id) click to toggle source

@api public @param [Fixnum] id Account ID @return [Bool]

# File lib/3scale/api/client.rb, line 588
def delete_account(id)
  http_client.delete("/admin/api/accounts/#{id}")
  true
end
delete_activedocs(id) click to toggle source

@api public @return [Hash]

# File lib/3scale/api/client.rb, line 573
def delete_activedocs(id)
  http_client.delete("/admin/api/active_docs/#{id}")
  true
end
delete_application(account_id, id) click to toggle source

@api public @param [Fixnum] account_id Account ID @param [Fixnum] id Application ID @return [Bool]

# File lib/3scale/api/client.rb, line 597
def delete_application(account_id, id)
  http_client.delete("/admin/api/accounts/#{account_id}/applications/#{id}")
  true
end
delete_application_plan(service_id, application_plan_id) click to toggle source

@api public @return [Bool] @param [Fixnum] service_id Service ID @param [Fixnum] application_plan_id Application Plan ID

# File lib/3scale/api/client.rb, line 426
def delete_application_plan(service_id, application_plan_id)
  http_client.delete("/admin/api/services/#{service_id}/application_plans/#{application_plan_id}")
  true
end
delete_application_plan_customization(account_id, application_id) click to toggle source

@api public @return [Hash] a Plan @param [Fixnum] account_id Account ID @param [Fixnum] application_id Application ID

# File lib/3scale/api/client.rb, line 108
def delete_application_plan_customization(account_id, application_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/decustomize_plan")
  extract(entity: 'application_plan', from: response)
end
delete_application_plan_feature(application_plan_id, id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] id Feature ID @return [Boolean]

# File lib/3scale/api/client.rb, line 641
def delete_application_plan_feature(application_plan_id, id)
  http_client.delete("/admin/api/application_plans/#{application_plan_id}/features/#{id}")
  true
end
delete_application_plan_limit(application_plan_id, metric_id, limit_id) click to toggle source

@param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] metric_id Metric ID @param [Fixnum] limit_id Usage Limit ID

# File lib/3scale/api/client.rb, line 475
def delete_application_plan_limit(application_plan_id, metric_id, limit_id)
  http_client.delete("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/limits/#{limit_id}")
  true
end
delete_application_plan_pricingrule(application_plan_id, metric_id, id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] metric_id Metric ID @param [Fixnum] id Rule ID @return [Bool]

# File lib/3scale/api/client.rb, line 542
def delete_application_plan_pricingrule(application_plan_id, metric_id, id)
  http_client.delete("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/pricing_rules/#{id}")
  true
end
delete_backend(id) click to toggle source

@api public @param [Fixnum] id Backend ID

# File lib/3scale/api/client.rb, line 858
def delete_backend(id)
  http_client.delete("/admin/api/backend_apis/#{id}")
  true
end
delete_backend_mapping_rule(backend_id, mapping_rule_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] mapping_rule_id MappingRule ID

# File lib/3scale/api/client.rb, line 996
def delete_backend_mapping_rule(backend_id, mapping_rule_id)
  http_client.delete("/admin/api/backend_apis/#{backend_id}/mapping_rules/#{mapping_rule_id}")
  true
end
delete_backend_method(backend_id, metric_id, method_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @param [Fixnum] method_id Backend Method ID

# File lib/3scale/api/client.rb, line 948
def delete_backend_method(backend_id, metric_id, method_id)
  http_client.delete("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods/#{method_id}")
  true
end
delete_backend_metric(backend_id, metric_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID

# File lib/3scale/api/client.rb, line 900
def delete_backend_metric(backend_id, metric_id)
  http_client.delete("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}")
  true
end
delete_backend_usage(product_id, id) click to toggle source

@api public @param [Fixnum] product_id Product ID @param [Fixnum] id Backend Usage ID

# File lib/3scale/api/client.rb, line 1042
def delete_backend_usage(product_id, id)
  http_client.delete("/admin/api/services/#{product_id}/backend_usages/#{id}")
  true
end
delete_mapping_rule(service_id, id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID @param [Fixnum] id Mapping Rule ID

# File lib/3scale/api/client.rb, line 250
def delete_mapping_rule(service_id, id)
  http_client.delete("/admin/api/services/#{service_id}/proxy/mapping_rules/#{id}")
  true
end
delete_method(service_id, parent_id, id) click to toggle source

@api public @return [Bool] @param [Fixnum] service_id Service ID @param [Fixnum] parent_id Parent metric ID @param [Fixnum] id Metric ID

# File lib/3scale/api/client.rb, line 368
def delete_method(service_id, parent_id, id)
  http_client.delete("/admin/api/services/#{service_id}/metrics/#{parent_id}/methods/#{id}")
  true
end
delete_metric(service_id, metric_id) click to toggle source

@api public @return [Bool] @param [Fixnum] service_id Service ID @param [Fixnum] metric_id Metric ID

# File lib/3scale/api/client.rb, line 315
def delete_metric(service_id, metric_id)
  http_client.delete("/admin/api/services/#{service_id}/metrics/#{metric_id}")
  true
end
delete_policy_registry(id) click to toggle source

@api public @param [Fixnum] id Policy Registry Id

# File lib/3scale/api/client.rb, line 829
def delete_policy_registry(id)
  http_client.delete("/admin/api/registry/policies/#{id}")
  true
end
delete_service(id) click to toggle source

@api public @param [Fixnum] id Service ID

# File lib/3scale/api/client.rb, line 32
def delete_service(id)
  http_client.delete("/admin/api/services/#{id}")
  true
end
delete_service_feature(service_id, id) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] id Feature ID @return [Boolean]

# File lib/3scale/api/client.rb, line 688
def delete_service_feature(service_id, id)
  http_client.delete("/admin/api/services/#{service_id}/features/#{id}")
  true
end
find_account(criteria) click to toggle source

@api public @param [Hash] criteria Search parameters @return [Hash]

# File lib/3scale/api/client.rb, line 483
def find_account(criteria)
  response = http_client.get('/admin/api/accounts/find', params: criteria)
  extract(entity: 'account', from: response)
end
find_application(id: nil, user_key: nil, application_id: nil, service_id: nil) click to toggle source

@api public @return [Hash] @param [Fixnum] id Application ID @param [String] user_key Application User Key @param [String] application_id Application app_id

# File lib/3scale/api/client.rb, line 59
def find_application(id: nil, user_key: nil, application_id: nil, service_id: nil)
  params = {
    application_id: id,
    user_key: user_key,
    app_id: application_id,
    service_id: service_id,
  }.compact
  response = http_client.get('/admin/api/applications/find', params: params)
  extract(entity: 'application', from: response)
end
list_account_applications(account_id) click to toggle source

@api public @param [String] account_id Account ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 737
def list_account_applications(account_id)
  response = http_client.get("/admin/api/accounts/#{account_id}/applications")
  extract(collection: 'applications', entity: 'application', from: response)
end
list_accounts() click to toggle source

@api public @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 580
def list_accounts
  response = http_client.get('/admin/api/accounts')
  extract(collection: 'accounts', entity: 'account', from: response)
end
list_activedocs() click to toggle source

@api public @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 549
def list_activedocs
  response = http_client.get('/admin/api/active_docs')
  extract(collection: 'api_docs', entity: 'api_doc', from: response)
end
list_application_keys(account_id, application_id) click to toggle source

@api public @param [String] account_id Account ID @param [String] application_id Application ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 753
def list_application_keys(account_id, application_id)
  response = http_client.get("/admin/api/accounts/#{account_id}/applications/#{application_id}/keys")
  extract(collection: 'keys', entity: 'key', from: response)
end
list_application_plan_limits(application_plan_id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] application_plan_id Application Plan ID

# File lib/3scale/api/client.rb, line 443
def list_application_plan_limits(application_plan_id)
  response = http_client.get("/admin/api/application_plans/#{application_plan_id}/limits")

  extract(collection: 'limits', entity: 'limit', from: response)
end
list_application_plans() click to toggle source

@api public @return [Array<Hash]

# File lib/3scale/api/client.rb, line 744
def list_application_plans
  response = http_client.get("/admin/api/application_plans")
  extract(collection: 'plans', entity: 'application_plan', from: response)
end
list_applications(service_id: nil, plan_id: nil) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] plan_id Application Plan ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 41
def list_applications(service_id: nil, plan_id: nil)
  params = { service_id: service_id, plan_id: plan_id }.compact
  response = http_client.get('/admin/api/applications', params: params)
  extract(collection: 'applications', entity: 'application', from: response)
end
list_backend_mapping_rules(backend_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @return [List]

# File lib/3scale/api/client.rb, line 978
def list_backend_mapping_rules(backend_id)
  response = http_client.get("/admin/api/backend_apis/#{backend_id}/mapping_rules")
  extract(collection: 'mapping_rules', entity: 'mapping_rule', from: response)
end
list_backend_methods(backend_id, metric_id) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @return [List]

# File lib/3scale/api/client.rb, line 928
def list_backend_methods(backend_id, metric_id)
  response = http_client.get("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods")
  extract(collection: 'methods', entity: 'method', from: response)
end
list_backend_metrics(id) click to toggle source

@api public @param [Fixnum] id Backend ID @return [List]

# File lib/3scale/api/client.rb, line 883
def list_backend_metrics(id)
  response = http_client.get("/admin/api/backend_apis/#{id}/metrics")
  extract(collection: 'metrics', entity: 'metric', from: response)
end
list_backend_usages(product_id) click to toggle source

@api public @param [Fixnum] product_id Product ID @return [List]

# File lib/3scale/api/client.rb, line 1024
def list_backend_usages(product_id)
  response = http_client.get("/admin/api/services/#{product_id}/backend_usages")
  extract(entity: 'backend_usage', from: response)
end
list_backends(params = nil) click to toggle source

@api public @return [List]

# File lib/3scale/api/client.rb, line 843
def list_backends(params = nil)
  response = http_client.get('/admin/api/backend_apis', params: params)
  extract(collection: 'backend_apis', entity: 'backend_api', from: response)
end
list_features_per_application_plan(application_plan_id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 622
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
list_mapping_rules(service_id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID

# File lib/3scale/api/client.rb, line 218
def list_mapping_rules(service_id)
  response = http_client.get("/admin/api/services/#{service_id}/proxy/mapping_rules")
  extract(entity: 'mapping_rule', collection: 'mapping_rules', from: response)
end
list_methods(service_id, metric_id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID @param [Fixnum] metric_id Metric ID

# File lib/3scale/api/client.rb, line 346
def list_methods(service_id, metric_id)
  response = http_client.get("/admin/api/services/#{service_id}/metrics/#{metric_id}/methods")
  extract(collection: 'methods', entity: 'method', from: response)
end
list_metric_limits(application_plan_id, metric_id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] metric_id Metric ID @return [Hash]

# File lib/3scale/api/client.rb, line 377
def list_metric_limits(application_plan_id, metric_id)
  response = http_client.get("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/limits")
  extract(collection: 'limits', entity: 'limit', from: response)
end
list_metrics(service_id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID

# File lib/3scale/api/client.rb, line 282
def list_metrics(service_id)
  response = http_client.get("/admin/api/services/#{service_id}/metrics")
  extract(collection: 'metrics', entity: 'metric', from: response)
end
list_policy_registry() click to toggle source

@api public @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 797
def list_policy_registry
  response = http_client.get('/admin/api/registry/policies')
  extract(collection: 'policies', entity: 'policy', from: response)
end
list_pricingrules_per_application_plan(application_plan_id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 524
def list_pricingrules_per_application_plan(application_plan_id)
  response = http_client.get("/admin/api/application_plans/#{application_plan_id}/pricing_rules")
  extract(collection: 'pricing_rules', entity: 'pricing_rule', from: response)
end
list_pricingrules_per_metric(application_plan_id, metric_id) click to toggle source

@api public @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] metric_id Metric ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 516
def list_pricingrules_per_metric(application_plan_id, metric_id)
  response = http_client.get("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/pricing_rules")
  extract(collection: 'pricing_rules', entity: 'pricing_rule', from: response)
end
list_service_application_plans(service_id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID

# File lib/3scale/api/client.rb, line 385
def list_service_application_plans(service_id)
  response = http_client.get("/admin/api/services/#{service_id}/application_plans")

  extract(collection: 'plans', entity: 'application_plan', from: response)
end
list_service_features(id) click to toggle source

@api public @param [Fixnum] id Service ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 649
def list_service_features(id)
  response = http_client.get("/admin/api/services/#{id}/features")
  extract(collection: 'features', entity: 'feature', from: response)
end
list_services(params = nil) click to toggle source

@api public @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 25
def list_services(params = nil)
  response = http_client.get('/admin/api/services', params: params)
  extract(collection: 'services', entity: 'service', from: response)
end
list_users(account_id, state: nil, role: nil) click to toggle source

@api public @param [Fixnum] account_id Account ID @param [String] state State @param [String] role Role @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 698
def list_users(account_id, state: nil, role: nil)
  params = { state: state, role: role }.reject { |_, value| value.nil? }
  response = http_client.get("/admin/api/accounts/#{account_id}/users", params: params)
  extract(collection: 'users', entity: 'user', from: response)
end
promote_proxy_config(service_id, environment, version, to) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [String] environment Must be 'sandbox' or 'production' @param [Fixnum] version Version to promote @param [Fixnum] to To which the specified proxy configuration will be promoted to

# File lib/3scale/api/client.rb, line 191
def promote_proxy_config(service_id, environment, version, to)
  response = http_client.post("/admin/api/services/#{service_id}/proxy/configs/#{environment}/#{version}/promote",
                              body: { to: to })
  extract(entity: 'proxy_config', from: response)
end
proxy_config_latest(service_id, environment = 'sandbox') click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [String] environment. Must be 'sandbox' or 'production'

# File lib/3scale/api/client.rb, line 170
def proxy_config_latest(service_id, environment = 'sandbox')
  response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}/latest")
  extract(entity: 'proxy_config', from: response)
end
proxy_config_list(service_id, environment = 'sandbox') click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [String] environment. Must be 'sandbox' or 'production'

# File lib/3scale/api/client.rb, line 161
def proxy_config_list(service_id, environment = 'sandbox')
  response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}")
  extract(collection: 'proxy_configs', entity: 'proxy_config', from: response)
end
proxy_deploy(service_id) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID

# File lib/3scale/api/client.rb, line 209
def proxy_deploy(service_id)
  response = http_client.post("/admin/api/services/#{service_id}/proxy/deploy",
                              body: nil)
  extract(entity: 'proxy', from: response)
end
resume_application(account_id, application_id) click to toggle source

@api public @param [String] account_id Account ID @param [String] application_id Application ID @return [Hash] application Application

# File lib/3scale/api/client.rb, line 790
def resume_application(account_id, application_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/resume")
  extract(entity: 'application', from: response)
end
show_account(id) click to toggle source

@api public @param [Fixnum] id Account Id @return [Hash]

# File lib/3scale/api/client.rb, line 491
def show_account(id)
  response = http_client.get("/admin/api/accounts/#{id}")
  extract(entity: 'account', from: response)
end
show_application(id) click to toggle source

@api public @return [Hash] @param [Fixnum] id Application ID

# File lib/3scale/api/client.rb, line 50
def show_application(id)
  find_application(id: id)
end
show_application_plan(service_id, id) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] id Application Plan ID @return [Hash]

# File lib/3scale/api/client.rb, line 406
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
show_mapping_rule(service_id, id) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID @param [Fixnum] id Mapping Rule ID

# File lib/3scale/api/client.rb, line 227
def show_mapping_rule(service_id, id)
  response = http_client.get("/admin/api/services/#{service_id}/proxy/mapping_rules/#{id}")
  extract(entity: 'mapping_rule', from: response)
end
show_method(service_id, parent_id, id) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] parent_id Parent metric ID @param [Fixnum] id Method ID @return [Hash]

# File lib/3scale/api/client.rb, line 325
def show_method(service_id, parent_id, id)
  response = http_client.get("/admin/api/services/#{service_id}/metrics/#{parent_id}/methods/#{id}")
  extract(entity: 'method', from: response)
end
show_metric(service_id, id) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] id Metric ID @return [Hash]

# File lib/3scale/api/client.rb, line 274
def show_metric(service_id, id)
  response = http_client.get("/admin/api/services/#{service_id}/metrics/#{id}")
  extract(entity: 'metric', from: response)
end
show_oidc(service_id) click to toggle source

@api public @param [Fixnum] service_id Service ID @return [Array<Hash>]

# File lib/3scale/api/client.rb, line 605
def show_oidc(service_id)
  response = http_client.get("/admin/api/services/#{service_id}/proxy/oidc_configuration")
  extract(entity: 'oidc_configuration', from: response)
end
show_policies(id) click to toggle source

@api public @return [Array] @param [Fixnum] id Service ID

# File lib/3scale/api/client.rb, line 499
def show_policies(id)
  response = http_client.get("/admin/api/services/#{id}/proxy/policies")
  extract(entity: 'policies_config', from: response)
end
show_policy_registry(id) click to toggle source

@api public @return [Hash] @param [Fixnum] id Policy Registry Id

# File lib/3scale/api/client.rb, line 813
def show_policy_registry(id)
  response = http_client.get("/admin/api/registry/policies/#{id}")
  extract(entity: 'policy', from: response)
end
show_provider() click to toggle source

@api public @return [Hash]

# File lib/3scale/api/client.rb, line 836
def show_provider
  response = http_client.get('/admin/api/provider')
  extract(entity: 'account', from: response)
end
show_proxy(service_id) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID

# File lib/3scale/api/client.rb, line 152
def show_proxy(service_id)
  response = http_client.get("/admin/api/services/#{service_id}/proxy")
  extract(entity: 'proxy', from: response)
end
show_proxy_config(service_id, environment, version) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [String] environment. Must be 'sandbox' or 'production' @param [Fixnum] version Proxy configuration version

# File lib/3scale/api/client.rb, line 180
def show_proxy_config(service_id, environment, version)
  response = http_client.get("/admin/api/services/#{service_id}/proxy/configs/#{environment}/#{version}")
  extract(entity: 'proxy_config', from: response)
end
show_service(id) click to toggle source

@api public @return [Hash] @param [Fixnum] id Service ID

# File lib/3scale/api/client.rb, line 18
def show_service(id)
  response = http_client.get("/admin/api/services/#{id}")
  extract(entity: 'service', from: response)
end
show_service_feature(service_id, id) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] id Feature ID @return [Hash]

# File lib/3scale/api/client.rb, line 668
def show_service_feature(service_id, id)
  response = http_client.get("/admin/api/services/#{service_id}/features/#{id}")
  extract(entity: 'feature', from: response)
end
signup(attributes = {}, name:, username:, **rest) click to toggle source

@api public @return [Hash] an Account @param [String] name Account Name @param [String] username User Username @param [Hash] attributes User and Account Attributes @option attributes [String] :email User Email @option attributes [String] :password User Password @option attributes [String] :account_plan_id Account Plan ID @option attributes [String] :service_plan_id Service Plan ID @option attributes [String] :application_plan_id Application Plan ID

# File lib/3scale/api/client.rb, line 123
def signup(attributes = {}, name:, username:, **rest)
  body = { org_name: name,
           username: username }.merge(attributes).merge(rest)
  response = http_client.post('/admin/api/signup', body: body)
  extract(entity: 'account', from: response)
end
suspend_application(account_id, application_id) click to toggle source

@api public @param [String] account_id Account ID @param [String] application_id Application ID @return [Hash] application Application

# File lib/3scale/api/client.rb, line 781
def suspend_application(account_id, application_id)
  response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{application_id}/suspend")
  extract(entity: 'application', from: response)
end
update_activedocs(id, attributes) click to toggle source

@api public @param [Fixnum] id ActiveDocs ID @param [Hash] attributes ActiveDocs attributes @return [Hash]

# File lib/3scale/api/client.rb, line 566
def update_activedocs(id, attributes)
  response = http_client.put("/admin/api/active_docs/#{id}", body: attributes)
  extract(entity: 'api_doc', from: response)
end
update_application(account_id, id, attrs) click to toggle source

@api public @param [Fixnum] account_id Account ID @param [Fixnum] id Application ID @param [Hash] attrs Application Attributes @return [Hash] an Application

# File lib/3scale/api/client.rb, line 90
def update_application(account_id, id, attrs)
  response = http_client.put("/admin/api/accounts/#{account_id}/applications/#{id}", body: attrs)
  extract(entity: 'application', from: response)
end
update_application_plan(service_id, id, attributes) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] id Application Plan ID @param [Hash] attributes Application Plan Attributes @return [Hash]

# File lib/3scale/api/client.rb, line 416
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
update_application_plan_limit(application_plan_id, metric_id, limit_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] application_plan_id Application Plan ID @param [Fixnum] metric_id Metric ID @param [Fixnum] limit_id Usage Limit ID @param [Hash] attributes Limit Attributes

# File lib/3scale/api/client.rb, line 466
def update_application_plan_limit(application_plan_id, metric_id, limit_id, attributes)
  response = http_client.put("/admin/api/application_plans/#{application_plan_id}/metrics/#{metric_id}/limits/#{limit_id}",
                             body: { usage_limit: attributes })
  extract(entity: 'limit', from: response)
end
update_backend(id, attributes) click to toggle source

@api public @param [Fixnum] id Backend ID @param [Hash] attributes Backend attributes @return [Hash]

# File lib/3scale/api/client.rb, line 875
def update_backend(id, attributes)
  response = http_client.put("/admin/api/backend_apis/#{id}", body: attributes)
  extract(entity: 'backend_api', from: response)
end
update_backend_mapping_rule(backend_id, mapping_rule_id, attributes) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] mapping_rule_id MappingRule ID @param [Hash] attributes Backend attributes @return [Hash]

# File lib/3scale/api/client.rb, line 1015
def update_backend_mapping_rule(backend_id, mapping_rule_id, attributes)
  response = http_client.put("/admin/api/backend_apis/#{backend_id}/mapping_rules/#{mapping_rule_id}",
                             body: attributes)
  extract(entity: 'mapping_rule', from: response)
end
update_backend_method(backend_id, metric_id, method_id, attributes) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @param [Fixnum] method_id Backend Method ID @param [Hash] attributes Backend attributes @return [Hash]

# File lib/3scale/api/client.rb, line 969
def update_backend_method(backend_id, metric_id, method_id, attributes)
  response = http_client.put("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}/methods/#{method_id}",
                             body: attributes)
  extract(entity: 'method', from: response)
end
update_backend_metric(backend_id, metric_id, attributes) click to toggle source

@api public @param [Fixnum] backend_id Backend ID @param [Fixnum] metric_id Backend Metric ID @param [Hash] attributes Backend attributes @return [Hash]

# File lib/3scale/api/client.rb, line 919
def update_backend_metric(backend_id, metric_id, attributes)
  response = http_client.put("/admin/api/backend_apis/#{backend_id}/metrics/#{metric_id}", body: attributes)
  extract(entity: 'metric', from: response)
end
update_backend_usage(product_id, id, attrs) click to toggle source

@api public @param [Fixnum] product_id Product ID @param [Fixnum] id Backend Usage ID @param [Hash] attrs Backend Usage attributes @return [Hash]

# File lib/3scale/api/client.rb, line 1061
def update_backend_usage(product_id, id, attrs)
  response = http_client.put("/admin/api/services/#{product_id}/backend_usages/#{id}",
                             body: attrs)
  extract(entity: 'backend_usage', from: response)
end
update_mapping_rule(service_id, id, attributes) click to toggle source

@api public @return [Array<Hash>] @param [Fixnum] service_id Service ID @param [Fixnum] id Mapping Rule ID @param [Hash] attributes Mapping Rule Attributes @option attributes [String] :http_method HTTP Method @option attributes [String] :pattern Pattern @option attributes [Fixnum] :delta Increase the metric by delta. @option attributes [Fixnum] :metric_id Metric ID

# File lib/3scale/api/client.rb, line 264
def update_mapping_rule(service_id, id, attributes)
  response = http_client.patch("/admin/api/services/#{service_id}/mapping_rules/#{id}",
                               body: { mapping_rule: attributes })
  extract(entity: 'mapping_rule', from: response)
end
update_method(service_id, parent_id, id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [Fixnum] parent_id Parent metric ID @param [Fixnum] id Method ID @param [Hash] attributes Method Attributes

# File lib/3scale/api/client.rb, line 336
def update_method(service_id, parent_id, id, attributes)
  response = http_client.put("/admin/api/services/#{service_id}/metrics/#{parent_id}/methods/#{id}",
                             body: { metric: attributes })
  extract(entity: 'method', from: response)
end
update_metric(service_id, metric_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [Fixnum] metric_id Metric ID @param [Hash] attributes Metric Attributes @option attributes [String] :friendly_name Metric Name @option attributes [String] :unit Metric unit @option attributes [String] :description Metric description

# File lib/3scale/api/client.rb, line 305
def update_metric(service_id, metric_id, attributes)
  response = http_client.put("/admin/api/services/#{service_id}/metrics/#{metric_id}",
                             body: { metric: attributes })
  extract(entity: 'metric', from: response)
end
update_oidc(service_id, attributes) click to toggle source

@api public @param [Fixnum] service_id Service ID @return [Hash]

# File lib/3scale/api/client.rb, line 613
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
update_policies(id, policies_config) click to toggle source

@api public @return [Array] @param [Fixnum] id Service ID

# File lib/3scale/api/client.rb, line 507
def update_policies(id, policies_config)
  response = http_client.put("/admin/api/services/#{id}/proxy/policies", body: policies_config)
  extract(entity: 'policies_config', from: response)
end
update_policy_registry(id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] id Policy Registry Id @param [Hash] attributes Policy Registry Attributes

# File lib/3scale/api/client.rb, line 822
def update_policy_registry(id, attributes)
  response = http_client.put("/admin/api/registry/policies/#{id}", body: attributes)
  extract(entity: 'policy', from: response)
end
update_proxy(service_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID

# File lib/3scale/api/client.rb, line 200
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
update_service(service_id, attributes) click to toggle source

@api public @return [Hash] @param [Fixnum] service_id Service ID @param [Hash] attributes Service Attributes @option attributes [String] :name Service Name

# File lib/3scale/api/client.rb, line 144
def update_service(service_id, attributes)
  response = http_client.put("/admin/api/services/#{service_id}", body: { service: attributes })
  extract(entity: 'service', from: response)
end
update_service_feature(service_id, id, attributes) click to toggle source

@api public @param [Fixnum] service_id Service ID @param [Fixnum] id Feature ID @param [Hash] attributes Feature Attributes @return [Hash]

# File lib/3scale/api/client.rb, line 678
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

Protected Instance Methods

extract(collection: nil, entity:, from:) click to toggle source
# File lib/3scale/api/client.rb, line 1069
def extract(collection: nil, entity:, from:)
  from = from.fetch(collection) if collection

  case from
  when Array then from.map { |e| e.fetch(entity) }
  when Hash then from.fetch(entity) { from }
  when nil then nil # raise exception?
  else
    raise "unknown #{from}"
  end
end