Class: ThreeScale::API::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/3scale/api/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(http_client) ⇒ Client

Returns a new instance of Client.

Parameters:



8
9
10
# File 'lib/3scale/api/client.rb', line 8

def initialize(http_client)
  @http_client = http_client
end

Instance Attribute Details

#http_clientObject (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

#accept_application(account_id, application_id) ⇒ Hash

Returns application Application.

Parameters:

  • Account ID

  • Application ID

Returns:

  • application Application

API:

  • public



750
751
752
753
# File 'lib/3scale/api/client.rb', line 750

def accept_application(, application_id)
  response = http_client.put("/admin/api/accounts/#{}/applications/#{application_id}/accept")
  extract(entity: 'application', from: response)
end

#activate_user(account_id, user_id) ⇒ Hash

Parameters:

  • Account ID

  • User ID

Returns:

API:

  • public



699
700
701
702
# File 'lib/3scale/api/client.rb', line 699

def activate_user(, user_id)
  response = http_client.put("/admin/api/accounts/#{}/users/#{user_id}/activate")
  extract(entity: 'user', from: response)
end

#application_plan_as_default(service_id, application_plan_id) ⇒ Hash

Parameters:

  • Service ID

  • Application Plan ID

Returns:

API:

  • public



423
424
425
426
# File 'lib/3scale/api/client.rb', line 423

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) ⇒ Hash

Parameters:

  • Account ID

Returns:

API:

  • public



707
708
709
710
# File 'lib/3scale/api/client.rb', line 707

def ()
  response = http_client.put("/admin/api/accounts/#{}/approve")
  extract(entity: 'account', from: response)
end

#create_activedocs(attributes) ⇒ Hash

Parameters:

  • ActiveDocs attributes

Returns:

API:

  • public



535
536
537
538
# File 'lib/3scale/api/client.rb', line 535

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.

Parameters:

  • Application Plan ID

  • (defaults to: {})

    Application Attributes

Options Hash (attributes):

  • :name (String)

    Application Name

  • :description (String)

    Application Description

  • :user_key (String)

    Application User Key

  • :application_id (String)

    Application App ID

  • :application_key (String)

    Application App Key(s)

Returns:

  • an Application

API:

  • public



76
77
78
79
80
# File 'lib/3scale/api/client.rb', line 76

def create_application(, attributes = {}, plan_id:, **rest)
  body = { plan_id: plan_id }.merge(attributes).merge(rest)
  response = http_client.post("/admin/api/accounts/#{}/applications", body: body)
  extract(entity: 'application', from: response)
end

#create_application_key(account_id, application_id, key) ⇒ Hash

Parameters:

  • Account ID

  • Application ID

  • Key

Returns:

API:

  • public



741
742
743
744
# File 'lib/3scale/api/client.rb', line 741

def create_application_key(, application_id, key)
  response = http_client.post("/admin/api/accounts/#{}/applications/#{application_id}/keys", body: {key: key})
  extract(entity: 'application', from: response)
end

#create_application_plan(service_id, attributes) ⇒ Hash

Parameters:

  • Service ID

  • Metric Attributes

Options Hash (attributes):

  • :name (String)

    Application Plan Name

Returns:

API:

  • public



384
385
386
387
388
# File 'lib/3scale/api/client.rb', line 384

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

Parameters:

  • Application Plan ID

  • Feature ID

Returns:

API:

  • public



609
610
611
612
613
# File 'lib/3scale/api/client.rb', line 609

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

Parameters:

  • Application Plan ID

  • Metric ID

  • Limit Attributes

Returns:

API:

  • public



442
443
444
445
446
# File 'lib/3scale/api/client.rb', line 442

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>

Parameters:

  • Service ID

  • Mapping Rule Attributes

Options Hash (attributes):

  • :http_method (String)

    HTTP Method

  • :pattern (String)

    Pattern

  • :delta (Fixnum)

    Increase the metric by delta.

  • :metric_id (Fixnum)

    Metric ID

Returns:

API:

  • public



228
229
230
231
232
# File 'lib/3scale/api/client.rb', line 228

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

Parameters:

  • Service ID

  • Metric ID

  • Metric Attributes

Options Hash (attributes):

  • :name (String)

    Method Name

Returns:

API:

  • public



345
346
347
348
349
# File 'lib/3scale/api/client.rb', line 345

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

Parameters:

  • Service ID

  • Metric Attributes

Options Hash (attributes):

  • :name (String)

    Metric Name

Returns:

API:

  • public



280
281
282
283
# File 'lib/3scale/api/client.rb', line 280

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) ⇒ Hash

Parameters:

  • Policy Registry Attributes

Returns:

API:

  • public



783
784
785
786
# File 'lib/3scale/api/client.rb', line 783

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) ⇒ Array<Hash>

Parameters:

  • Application Plan ID

Returns:

API:

  • public



520
521
522
523
# File 'lib/3scale/api/client.rb', line 520

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

Parameters:

  • Service Attributes

Options Hash (attributes):

  • :name (String)

    Service Name

Returns:

API:

  • public



131
132
133
134
# File 'lib/3scale/api/client.rb', line 131

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

Parameters:

  • Service ID

  • Feature Attributes

Returns:

API:

  • public



636
637
638
639
640
# File 'lib/3scale/api/client.rb', line 636

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) ⇒ Hash

Parameters:

  • Account ID

  • User email

  • User Username

  • User password

  • User Attributes

Returns:

API:

  • public



689
690
691
692
693
# File 'lib/3scale/api/client.rb', line 689

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/#{}/users", body: body)
  extract(entity: 'user', from: response)
end

#customize_application_plan(account_id, application_id) ⇒ Hash

Returns a Plan.

Parameters:

  • Account ID

  • Application ID

Returns:

  • a Plan

API:

  • public



96
97
98
99
# File 'lib/3scale/api/client.rb', line 96

def customize_application_plan(, application_id)
  response = http_client.put("/admin/api/accounts/#{}/applications/#{application_id}/customize_plan")
  extract(entity: 'application_plan', from: response)
end

#delete_account(id) ⇒ Bool

Parameters:

  • Account ID

Returns:

API:

  • public



566
567
568
569
# File 'lib/3scale/api/client.rb', line 566

def (id)
  http_client.delete("/admin/api/accounts/#{id}")
  true
end

#delete_activedocs(id) ⇒ Hash

Returns:

API:

  • public



551
552
553
554
# File 'lib/3scale/api/client.rb', line 551

def delete_activedocs(id)
  http_client.delete("/admin/api/active_docs/#{id}")
  true
end

#delete_application(account_id, id) ⇒ Bool

Parameters:

  • Account ID

  • Application ID

Returns:

API:

  • public



575
576
577
578
# File 'lib/3scale/api/client.rb', line 575

def delete_application(, id)
  http_client.delete("/admin/api/accounts/#{}/applications/#{id}")
  true
end

#delete_application_plan(service_id, application_plan_id) ⇒ Bool

Parameters:

  • Service ID

  • Application Plan ID

Returns:

API:

  • public



414
415
416
417
# File 'lib/3scale/api/client.rb', line 414

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.

Parameters:

  • Account ID

  • Application ID

Returns:

  • a Plan

API:

  • public



105
106
107
108
# File 'lib/3scale/api/client.rb', line 105

def delete_application_plan_customization(, application_id)
  response = http_client.put("/admin/api/accounts/#{}/applications/#{application_id}/decustomize_plan")
  extract(entity: 'application_plan', from: response)
end

#delete_application_plan_feature(application_plan_id, id) ⇒ Boolean

Parameters:

  • Application Plan ID

  • Feature ID

Returns:

API:

  • public



619
620
621
622
# File 'lib/3scale/api/client.rb', line 619

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

Parameters:

  • Application Plan ID

  • Metric ID

  • Usage Limit ID



463
464
465
466
# File 'lib/3scale/api/client.rb', line 463

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>

Parameters:

  • Service ID

  • Mapping Rule ID

Returns:

API:

  • public



238
239
240
241
# File 'lib/3scale/api/client.rb', line 238

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) ⇒ Bool

Parameters:

  • Service ID

  • Parent metric ID

  • Metric ID

Returns:

API:

  • public



356
357
358
359
# File 'lib/3scale/api/client.rb', line 356

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) ⇒ Bool

Parameters:

  • Service ID

  • Metric ID

Returns:

API:

  • public



303
304
305
306
# File 'lib/3scale/api/client.rb', line 303

def delete_metric(service_id, metric_id)
  http_client.delete("/admin/api/services/#{service_id}/metrics/#{metric_id}")
  true
end

#delete_policy_registry(id) ⇒ Object

Parameters:

  • Policy Registry Id

API:

  • public



807
808
809
810
# File 'lib/3scale/api/client.rb', line 807

def delete_policy_registry(id)
  http_client.delete("/admin/api/registry/policies/#{id}")
  true
end

#delete_service(id) ⇒ Object

Parameters:

  • Service ID

API:

  • public



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

Parameters:

  • Service ID

  • Feature ID

Returns:

API:

  • public



666
667
668
669
# File 'lib/3scale/api/client.rb', line 666

def delete_service_feature(service_id, id)
  http_client.delete("/admin/api/services/#{service_id}/features/#{id}")
  true
end

#find_account(criteria) ⇒ Hash

Parameters:

  • criteria

Returns:

API:

  • public



471
472
473
474
# File 'lib/3scale/api/client.rb', line 471

def (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) ⇒ Hash

Parameters:

  • (defaults to: nil)

    Application ID

  • (defaults to: nil)

    Application User Key

  • (defaults to: nil)

    Application app_id

Returns:

API:

  • public



56
57
58
59
60
61
62
63
64
65
# File 'lib/3scale/api/client.rb', line 56

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) ⇒ Array<Hash>

Parameters:

  • Account ID

Returns:

API:

  • public



715
716
717
718
# File 'lib/3scale/api/client.rb', line 715

def ()
  response = http_client.get("/admin/api/accounts/#{}/applications")
  extract(collection: 'applications', entity: 'application', from: response)
end

#list_accountsArray<Hash>

Returns:

API:

  • public



558
559
560
561
# File 'lib/3scale/api/client.rb', line 558

def list_accounts
  response = http_client.get('/admin/api/accounts')
  extract(collection: 'accounts', entity: 'account', from: response)
end

#list_activedocsArray<Hash>

Returns:

API:

  • public



527
528
529
530
# File 'lib/3scale/api/client.rb', line 527

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) ⇒ Array<Hash>

Parameters:

  • Account ID

  • Application ID

Returns:

API:

  • public



731
732
733
734
# File 'lib/3scale/api/client.rb', line 731

def list_application_keys(, application_id)
  response = http_client.get("/admin/api/accounts/#{}/applications/#{application_id}/keys")
  extract(collection: 'keys', entity: 'key', from: response)
end

#list_application_plan_limits(application_plan_id) ⇒ Array<Hash>

Parameters:

  • Application Plan ID

Returns:

API:

  • public



431
432
433
434
435
# File 'lib/3scale/api/client.rb', line 431

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_plansArray<Hash]

Returns Array<Hash].

Returns:

  • Array<Hash]

API:

  • public



722
723
724
725
# File 'lib/3scale/api/client.rb', line 722

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) ⇒ Array<Hash>

Parameters:

  • (defaults to: nil)

    Service ID

  • (defaults to: nil)

    Application Plan ID

Returns:

API:

  • public



38
39
40
41
42
# File 'lib/3scale/api/client.rb', line 38

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_features_per_application_plan(application_plan_id) ⇒ Array<Hash>

Parameters:

  • Application Plan ID

Returns:

API:

  • public



600
601
602
603
# File 'lib/3scale/api/client.rb', line 600

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>

Parameters:

  • Service ID

Returns:

API:

  • public



206
207
208
209
# File 'lib/3scale/api/client.rb', line 206

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>

Parameters:

  • Service ID

  • Metric ID

Returns:

API:

  • public



334
335
336
337
# File 'lib/3scale/api/client.rb', line 334

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

Parameters:

  • Application Plan ID

  • Metric ID

Returns:

API:

  • public



365
366
367
368
# File 'lib/3scale/api/client.rb', line 365

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>

Parameters:

  • Service ID

Returns:

API:

  • public



270
271
272
273
# File 'lib/3scale/api/client.rb', line 270

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_registryArray<Hash>

Returns:

API:

  • public



775
776
777
778
# File 'lib/3scale/api/client.rb', line 775

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) ⇒ Array<Hash>

Parameters:

  • Application Plan ID

Returns:

API:

  • public



512
513
514
515
# File 'lib/3scale/api/client.rb', line 512

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>

Parameters:

  • Application Plan ID

  • Metric ID

Returns:

API:

  • public



504
505
506
507
# File 'lib/3scale/api/client.rb', line 504

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>

Parameters:

  • Service ID

Returns:

API:

  • public



373
374
375
376
377
# File 'lib/3scale/api/client.rb', line 373

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>

Parameters:

  • Service ID

Returns:

API:

  • public



627
628
629
630
# File 'lib/3scale/api/client.rb', line 627

def list_service_features(id)
  response = http_client.get("/admin/api/services/#{id}/features")
  extract(collection: 'features', entity: 'feature', from: response)
end

#list_servicesArray<Hash>

Returns:

API:

  • public



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

#list_users(account_id, state: nil, role: nil) ⇒ Array<Hash>

Parameters:

  • Account ID

  • (defaults to: nil)

    State

  • (defaults to: nil)

    Role

Returns:

API:

  • public



676
677
678
679
680
# File 'lib/3scale/api/client.rb', line 676

def list_users(, state: nil, role: nil)
  params = { state: state, role: role }.reject { |_, value| value.nil? }
  response = http_client.get("/admin/api/accounts/#{}/users", params: params)
  extract(collection: 'users', entity: 'user', from: response)
end

#promote_proxy_config(service_id, environment, version, to) ⇒ Hash

Parameters:

  • Service ID

  • Must be ‘sandbox’ or ‘production’

  • configuration version to promote

  • configuration to which the specified proxy configuration will be promoted to

Returns:

API:

  • public



188
189
190
191
192
# File 'lib/3scale/api/client.rb', line 188

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') ⇒ Hash

Parameters:

  • Service ID

  • Must be ‘sandbox’ or ‘production’

Returns:

API:

  • public



167
168
169
170
# File 'lib/3scale/api/client.rb', line 167

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') ⇒ Hash

Parameters:

  • Service ID

  • Must be ‘sandbox’ or ‘production’

Returns:

API:

  • public



158
159
160
161
# File 'lib/3scale/api/client.rb', line 158

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

#resume_application(account_id, application_id) ⇒ Hash

Returns application Application.

Parameters:

  • Account ID

  • Application ID

Returns:

  • application Application

API:

  • public



768
769
770
771
# File 'lib/3scale/api/client.rb', line 768

def resume_application(, application_id)
  response = http_client.put("/admin/api/accounts/#{}/applications/#{application_id}/resume")
  extract(entity: 'application', from: response)
end

#show_account(id) ⇒ Hash

Parameters:

  • Account Id

Returns:

API:

  • public



479
480
481
482
# File 'lib/3scale/api/client.rb', line 479

def (id)
  response = http_client.get("/admin/api/accounts/#{id}")
  extract(entity: 'account', from: response)
end

#show_application(id) ⇒ Hash

Parameters:

  • Application ID

Returns:

API:

  • public



47
48
49
# File 'lib/3scale/api/client.rb', line 47

def show_application(id)
  find_application(id: id)
end

#show_application_plan(service_id, id) ⇒ Hash

Parameters:

  • Service ID

  • Application Plan ID

Returns:

API:

  • public



394
395
396
397
# File 'lib/3scale/api/client.rb', line 394

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>

Parameters:

  • Service ID

  • Mapping Rule ID

Returns:

API:

  • public



215
216
217
218
# File 'lib/3scale/api/client.rb', line 215

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) ⇒ Hash

Parameters:

  • Service ID

  • Parent metric ID

  • Method ID

Returns:

API:

  • public



313
314
315
316
# File 'lib/3scale/api/client.rb', line 313

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) ⇒ Hash

Parameters:

  • Service ID

  • Metric ID

Returns:

API:

  • public



262
263
264
265
# File 'lib/3scale/api/client.rb', line 262

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) ⇒ Array<Hash>

Parameters:

  • Service ID

Returns:

API:

  • public



583
584
585
586
# File 'lib/3scale/api/client.rb', line 583

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

Parameters:

  • Service ID

Returns:

API:

  • public



487
488
489
490
# File 'lib/3scale/api/client.rb', line 487

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) ⇒ Hash

Parameters:

  • Policy Registry Id

Returns:

API:

  • public



791
792
793
794
# File 'lib/3scale/api/client.rb', line 791

def show_policy_registry(id)
  response = http_client.get("/admin/api/registry/policies/#{id}")
  extract(entity: 'policy', from: response)
end

#show_providerHash

Returns:

API:

  • public



814
815
816
817
# File 'lib/3scale/api/client.rb', line 814

def show_provider
  response = http_client.get('/admin/api/provider')
  extract(entity: 'account', from: response)
end

#show_proxy(service_id) ⇒ Hash

Parameters:

  • Service ID

Returns:

API:

  • public



149
150
151
152
# File 'lib/3scale/api/client.rb', line 149

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) ⇒ Hash

Parameters:

  • Service ID

  • Must be ‘sandbox’ or ‘production’

  • configuration version

Returns:

API:

  • public



177
178
179
180
# File 'lib/3scale/api/client.rb', line 177

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) ⇒ Hash

Parameters:

  • Service ID

Returns:

API:

  • public



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

Parameters:

  • Service ID

  • Feature ID

Returns:

API:

  • public



646
647
648
649
# File 'lib/3scale/api/client.rb', line 646

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.

Parameters:

  • Account Name

  • User Username

  • (defaults to: {})

    User and Account Attributes

Options Hash (attributes):

  • :email (String)

    User Email

  • :password (String)

    User Password

  • :account_plan_id (String)

    Account Plan ID

  • :service_plan_id (String)

    Service Plan ID

  • :application_plan_id (String)

    Application Plan ID

Returns:

  • an Account

API:

  • public



120
121
122
123
124
125
# File 'lib/3scale/api/client.rb', line 120

def (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) ⇒ Hash

Returns application Application.

Parameters:

  • Account ID

  • Application ID

Returns:

  • application Application

API:

  • public



759
760
761
762
# File 'lib/3scale/api/client.rb', line 759

def suspend_application(, application_id)
  response = http_client.put("/admin/api/accounts/#{}/applications/#{application_id}/suspend")
  extract(entity: 'application', from: response)
end

#update_activedocs(id, attributes) ⇒ Hash

Parameters:

  • ActiveDocs ID

  • ActiveDocs attributes

Returns:

API:

  • public



544
545
546
547
# File 'lib/3scale/api/client.rb', line 544

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) ⇒ Hash

Returns an Application.

Parameters:

  • Account ID

  • Application ID

  • Application Attributes

Returns:

  • an Application

API:

  • public



87
88
89
90
# File 'lib/3scale/api/client.rb', line 87

def update_application(, id, attrs)
  response = http_client.put("/admin/api/accounts/#{}/applications/#{id}", body: attrs)
  extract(entity: 'application', from: response)
end

#update_application_plan(service_id, id, attributes) ⇒ Hash

Parameters:

  • Service ID

  • Application Plan ID

  • Application Plan Attributes

Returns:

API:

  • public



404
405
406
407
408
# File 'lib/3scale/api/client.rb', line 404

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

Parameters:

  • Application Plan ID

  • Metric ID

  • Usage Limit ID

  • Limit Attributes

Returns:

API:

  • public



454
455
456
457
458
# File 'lib/3scale/api/client.rb', line 454

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>

Parameters:

  • Service ID

  • Mapping Rule ID

  • Mapping Rule Attributes

Options Hash (attributes):

  • :http_method (String)

    HTTP Method

  • :pattern (String)

    Pattern

  • :delta (Fixnum)

    Increase the metric by delta.

  • :metric_id (Fixnum)

    Metric ID

Returns:

API:

  • public



252
253
254
255
256
# File 'lib/3scale/api/client.rb', line 252

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) ⇒ Hash

Parameters:

  • Service ID

  • Parent metric ID

  • Method ID

  • Method Attributes

Returns:

API:

  • public



324
325
326
327
328
# File 'lib/3scale/api/client.rb', line 324

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) ⇒ Hash

Parameters:

  • Service ID

  • Metric ID

  • Metric Attributes

Options Hash (attributes):

  • :friendly_name (String)

    Metric Name

  • :unit (String)

    Metric unit

  • :description (String)

    Metric description

Returns:

API:

  • public



293
294
295
296
297
# File 'lib/3scale/api/client.rb', line 293

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) ⇒ Hash

Parameters:

  • Service ID

Returns:

API:

  • public



591
592
593
594
595
# File 'lib/3scale/api/client.rb', line 591

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

Parameters:

  • Service ID

Returns:

API:

  • public



495
496
497
498
# File 'lib/3scale/api/client.rb', line 495

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) ⇒ Hash

Parameters:

  • Policy Registry Id

  • Policy Registry Attributes

Returns:

API:

  • public



800
801
802
803
# File 'lib/3scale/api/client.rb', line 800

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) ⇒ Hash

Parameters:

  • Service ID

Returns:

API:

  • public



197
198
199
200
201
# File 'lib/3scale/api/client.rb', line 197

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

Parameters:

  • Service ID

  • Service Attributes

Options Hash (attributes):

  • :name (String)

    Service Name

Returns:

API:

  • public



141
142
143
144
# File 'lib/3scale/api/client.rb', line 141

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

Parameters:

  • Service ID

  • Feature ID

  • Feature Attributes

Returns:

API:

  • public



656
657
658
659
660
# File 'lib/3scale/api/client.rb', line 656

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