Class: ThreeScale::API::Client
- Inherits:
-
Object
- Object
- ThreeScale::API::Client
- Defined in:
- lib/3scale/api/client.rb
Instance Attribute Summary collapse
-
#http_client ⇒ Object
readonly
Returns the value of attribute http_client.
Instance Method Summary collapse
- #application_plan_as_default(service_id, application_plan_id) ⇒ Hash
- #create_activedocs(attributes) ⇒ Hash
-
#create_application(account_id, attributes = {}, plan_id:, **rest) ⇒ Hash
An Application.
- #create_application_plan(service_id, attributes) ⇒ Hash
- #create_application_plan_feature(application_plan_id, id) ⇒ Hash
- #create_application_plan_limit(application_plan_id, metric_id, attributes) ⇒ Hash
- #create_mapping_rule(service_id, attributes) ⇒ Array<Hash>
- #create_method(service_id, metric_id, attributes) ⇒ Hash
- #create_metric(service_id, attributes) ⇒ Hash
- #create_pricingrule(application_plan_id, metric_id, attributes) ⇒ Array<Hash>
- #create_service(attributes) ⇒ Hash
- #create_service_feature(id, attributes) ⇒ Hash
-
#customize_application_plan(account_id, application_id) ⇒ Hash
A Plan.
- #delete_account(id) ⇒ Bool
- #delete_activedocs(id) ⇒ Hash
- #delete_application(account_id, id) ⇒ Bool
- #delete_application_plan(service_id, application_plan_id) ⇒ Bool
-
#delete_application_plan_customization(account_id, application_id) ⇒ Hash
A Plan.
- #delete_application_plan_feature(application_plan_id, id) ⇒ Boolean
- #delete_application_plan_limit(application_plan_id, metric_id, limit_id) ⇒ Object
- #delete_mapping_rule(service_id, id) ⇒ Array<Hash>
- #delete_service(id) ⇒ Object
- #delete_service_feature(service_id, id) ⇒ Boolean
- #find_account(criteria) ⇒ Hash
- #find_application(id: nil, user_key: nil, application_id: nil) ⇒ Hash
-
#initialize(http_client) ⇒ Client
constructor
A new instance of Client.
- #list_accounts ⇒ Array<Hash>
- #list_activedocs ⇒ Array<Hash>
- #list_application_plan_limits(application_plan_id) ⇒ Array<Hash>
- #list_applications(service_id: nil) ⇒ Array<Hash>
- #list_features_per_application_plan(application_plan_id) ⇒ Array<Hash>
- #list_mapping_rules(service_id) ⇒ Array<Hash>
- #list_methods(service_id, metric_id) ⇒ Array<Hash>
- #list_metric_limits(application_plan_id, metric_id) ⇒ Hash
- #list_metrics(service_id) ⇒ Array<Hash>
- #list_pricingrules_per_application_plan(application_plan_id) ⇒ Array<Hash>
- #list_pricingrules_per_metric(application_plan_id, metric_id) ⇒ Array<Hash>
- #list_service_application_plans(service_id) ⇒ Array<Hash>
- #list_service_features(id) ⇒ Array<Hash>
- #list_services ⇒ Array<Hash>
- #proxy_config_latest(service_id, environment = 'sandbox') ⇒ Hash
- #proxy_config_list(service_id, environment = 'sandbox') ⇒ Hash
- #show_application(id) ⇒ Hash
- #show_application_plan(service_id, id) ⇒ Hash
- #show_mapping_rule(service_id, id) ⇒ Array<Hash>
- #show_oidc(service_id) ⇒ Array<Hash>
- #show_policies(id) ⇒ Array
- #show_proxy(service_id) ⇒ Hash
- #show_service(id) ⇒ Hash
- #show_service_feature(service_id, id) ⇒ Hash
-
#signup(attributes = {}, name:, username:, **rest) ⇒ Hash
An Account.
- #update_activedocs(id, attributes) ⇒ Hash
- #update_application_plan(service_id, id, attributes) ⇒ Hash
- #update_application_plan_limit(application_plan_id, metric_id, limit_id, attributes) ⇒ Hash
- #update_mapping_rule(service_id, id, attributes) ⇒ Array<Hash>
- #update_oidc(service_id, attributes) ⇒ Hash
- #update_policies(id, policies_config) ⇒ Array
- #update_proxy(service_id, attributes) ⇒ Hash
- #update_service(service_id, attributes) ⇒ Hash
- #update_service_feature(service_id, id, attributes) ⇒ Hash
Constructor Details
#initialize(http_client) ⇒ Client
8 9 10 |
# File 'lib/3scale/api/client.rb', line 8 def initialize(http_client) @http_client = http_client end |
Instance Attribute Details
#http_client ⇒ Object (readonly)
Returns the value of attribute http_client.
4 5 6 |
# File 'lib/3scale/api/client.rb', line 4 def http_client @http_client end |
Instance Method Details
#application_plan_as_default(service_id, application_plan_id) ⇒ Hash
321 322 323 324 |
# File 'lib/3scale/api/client.rb', line 321 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 |
#create_activedocs(attributes) ⇒ Hash
425 426 427 428 |
# File 'lib/3scale/api/client.rb', line 425 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) ⇒ Hash
Returns an Application.
70 71 72 73 74 |
# File 'lib/3scale/api/client.rb', line 70 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_plan(service_id, attributes) ⇒ Hash
282 283 284 285 286 |
# File 'lib/3scale/api/client.rb', line 282 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) ⇒ Hash
499 500 501 502 503 |
# File 'lib/3scale/api/client.rb', line 499 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) ⇒ Hash
340 341 342 343 344 |
# File 'lib/3scale/api/client.rb', line 340 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_mapping_rule(service_id, attributes) ⇒ Array<Hash>
190 191 192 193 194 |
# File 'lib/3scale/api/client.rb', line 190 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) ⇒ Hash
253 254 255 256 257 |
# File 'lib/3scale/api/client.rb', line 253 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) ⇒ Hash
233 234 235 236 |
# File 'lib/3scale/api/client.rb', line 233 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_pricingrule(application_plan_id, metric_id, attributes) ⇒ Array<Hash>
410 411 412 413 |
# File 'lib/3scale/api/client.rb', line 410 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) ⇒ Hash
115 116 117 118 |
# File 'lib/3scale/api/client.rb', line 115 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) ⇒ Hash
526 527 528 529 530 |
# File 'lib/3scale/api/client.rb', line 526 def create_service_feature(id, attributes) response = http_client.post("/admin/api/services/#{id}/features", body: { feature: attributes}) extract(entity: 'feature', from: response) end |
#customize_application_plan(account_id, application_id) ⇒ Hash
Returns a Plan.
80 81 82 83 |
# File 'lib/3scale/api/client.rb', line 80 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) ⇒ Bool
456 457 458 459 |
# File 'lib/3scale/api/client.rb', line 456 def delete_account(id) http_client.delete("/admin/api/accounts/#{id}") true end |
#delete_activedocs(id) ⇒ Hash
441 442 443 444 |
# File 'lib/3scale/api/client.rb', line 441 def delete_activedocs(id) http_client.delete("/admin/api/active_docs/#{id}") true end |
#delete_application(account_id, id) ⇒ Bool
465 466 467 468 |
# File 'lib/3scale/api/client.rb', line 465 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) ⇒ Bool
312 313 314 315 |
# File 'lib/3scale/api/client.rb', line 312 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) ⇒ Hash
Returns a Plan.
89 90 91 92 |
# File 'lib/3scale/api/client.rb', line 89 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) ⇒ Boolean
509 510 511 512 |
# File 'lib/3scale/api/client.rb', line 509 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) ⇒ Object
361 362 363 364 |
# File 'lib/3scale/api/client.rb', line 361 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_mapping_rule(service_id, id) ⇒ Array<Hash>
200 201 202 203 |
# File 'lib/3scale/api/client.rb', line 200 def delete_mapping_rule(service_id, id) http_client.delete("/admin/api/services/#{service_id}/proxy/mapping_rules/#{id}") true end |
#delete_service(id) ⇒ Object
29 30 31 32 |
# File 'lib/3scale/api/client.rb', line 29 def delete_service(id) http_client.delete("/admin/api/services/#{id}") true end |
#delete_service_feature(service_id, id) ⇒ Boolean
556 557 558 559 |
# File 'lib/3scale/api/client.rb', line 556 def delete_service_feature(service_id, id) http_client.delete("/admin/api/services/#{service_id}/features/#{id}") true end |
#find_account(criteria) ⇒ Hash
369 370 371 372 |
# File 'lib/3scale/api/client.rb', line 369 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) ⇒ Hash
55 56 57 58 59 |
# File 'lib/3scale/api/client.rb', line 55 def find_application(id: nil, user_key: nil, application_id: nil) params = { application_id: id, user_key: user_key, app_id: application_id }.reject { |_, value| value.nil? } response = http_client.get('/admin/api/applications/find', params: params) extract(entity: 'application', from: response) end |
#list_accounts ⇒ Array<Hash>
448 449 450 451 |
# File 'lib/3scale/api/client.rb', line 448 def list_accounts response = http_client.get('/admin/api/accounts') extract(collection: 'accounts', entity: 'account', from: response) end |
#list_activedocs ⇒ Array<Hash>
417 418 419 420 |
# File 'lib/3scale/api/client.rb', line 417 def list_activedocs response = http_client.get('/admin/api/active_docs') extract(collection: 'api_docs', entity: 'api_doc', from: response) end |
#list_application_plan_limits(application_plan_id) ⇒ Array<Hash>
329 330 331 332 333 |
# File 'lib/3scale/api/client.rb', line 329 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_applications(service_id: nil) ⇒ Array<Hash>
37 38 39 40 41 |
# File 'lib/3scale/api/client.rb', line 37 def list_applications(service_id: nil) params = service_id ? { service_id: service_id } : nil response = http_client.get('/admin/api/applications', params: params) extract(collection: 'applications', entity: 'application', from: response) end |
#list_features_per_application_plan(application_plan_id) ⇒ Array<Hash>
490 491 492 493 |
# File 'lib/3scale/api/client.rb', line 490 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) ⇒ Array<Hash>
168 169 170 171 |
# File 'lib/3scale/api/client.rb', line 168 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) ⇒ Array<Hash>
242 243 244 245 |
# File 'lib/3scale/api/client.rb', line 242 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) ⇒ Hash
263 264 265 266 |
# File 'lib/3scale/api/client.rb', line 263 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) ⇒ Array<Hash>
223 224 225 226 |
# File 'lib/3scale/api/client.rb', line 223 def list_metrics(service_id) response = http_client.get("/admin/api/services/#{service_id}/metrics") extract(collection: 'metrics', entity: 'metric', from: response) end |
#list_pricingrules_per_application_plan(application_plan_id) ⇒ Array<Hash>
402 403 404 405 |
# File 'lib/3scale/api/client.rb', line 402 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) ⇒ Array<Hash>
394 395 396 397 |
# File 'lib/3scale/api/client.rb', line 394 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) ⇒ Array<Hash>
271 272 273 274 275 |
# File 'lib/3scale/api/client.rb', line 271 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) ⇒ Array<Hash>
517 518 519 520 |
# File 'lib/3scale/api/client.rb', line 517 def list_service_features(id) response = http_client.get("/admin/api/services/#{id}/features") extract(collection: 'features', entity: 'feature', from: response) end |
#list_services ⇒ Array<Hash>
22 23 24 25 |
# File 'lib/3scale/api/client.rb', line 22 def list_services response = http_client.get('/admin/api/services') extract(collection: 'services', entity: 'service', from: response) end |
#proxy_config_latest(service_id, environment = 'sandbox') ⇒ Hash
151 152 153 154 |
# File 'lib/3scale/api/client.rb', line 151 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 |
#proxy_config_list(service_id, environment = 'sandbox') ⇒ Hash
142 143 144 145 |
# File 'lib/3scale/api/client.rb', line 142 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 |
#show_application(id) ⇒ Hash
46 47 48 |
# File 'lib/3scale/api/client.rb', line 46 def show_application(id) find_application(id: id) end |
#show_application_plan(service_id, id) ⇒ Hash
292 293 294 295 |
# File 'lib/3scale/api/client.rb', line 292 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) ⇒ Array<Hash>
177 178 179 180 |
# File 'lib/3scale/api/client.rb', line 177 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_oidc(service_id) ⇒ Array<Hash>
473 474 475 476 |
# File 'lib/3scale/api/client.rb', line 473 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) ⇒ Array
377 378 379 380 |
# File 'lib/3scale/api/client.rb', line 377 def show_policies(id) response = http_client.get("/admin/api/services/#{id}/proxy/policies") extract(entity: 'policies_config', from: response) end |
#show_proxy(service_id) ⇒ Hash
133 134 135 136 |
# File 'lib/3scale/api/client.rb', line 133 def show_proxy(service_id) response = http_client.get("/admin/api/services/#{service_id}/proxy") extract(entity: 'proxy', from: response) end |
#show_service(id) ⇒ Hash
15 16 17 18 |
# File 'lib/3scale/api/client.rb', line 15 def show_service(id) response = http_client.get("/admin/api/services/#{id}") extract(entity: 'service', from: response) end |
#show_service_feature(service_id, id) ⇒ Hash
536 537 538 539 |
# File 'lib/3scale/api/client.rb', line 536 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) ⇒ Hash
Returns an Account.
104 105 106 107 108 109 |
# File 'lib/3scale/api/client.rb', line 104 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 |
#update_activedocs(id, attributes) ⇒ Hash
434 435 436 437 |
# File 'lib/3scale/api/client.rb', line 434 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_plan(service_id, id, attributes) ⇒ Hash
302 303 304 305 306 |
# File 'lib/3scale/api/client.rb', line 302 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) ⇒ Hash
352 353 354 355 356 |
# File 'lib/3scale/api/client.rb', line 352 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_mapping_rule(service_id, id, attributes) ⇒ Array<Hash>
214 215 216 217 218 |
# File 'lib/3scale/api/client.rb', line 214 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_oidc(service_id, attributes) ⇒ Hash
481 482 483 484 485 |
# File 'lib/3scale/api/client.rb', line 481 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) ⇒ Array
385 386 387 388 |
# File 'lib/3scale/api/client.rb', line 385 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_proxy(service_id, attributes) ⇒ Hash
159 160 161 162 163 |
# File 'lib/3scale/api/client.rb', line 159 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) ⇒ Hash
125 126 127 128 |
# File 'lib/3scale/api/client.rb', line 125 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) ⇒ Hash
546 547 548 549 550 |
# File 'lib/3scale/api/client.rb', line 546 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 |