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:



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

def initialize(http_client)
  @http_client = http_client
end

Instance Attribute Details

#http_clientObject (readonly)

Returns the value of attribute http_client.



5
6
7
# File 'lib/3scale/api/client.rb', line 5

def http_client
  @http_client
end

Instance Method Details

#create_application_plan(service_id, attributes) ⇒ Hash

Parameters:

  • Service ID

  • Metric Attributes

Options Hash (attributes):

  • :name (String)

    Application Plan Name

Returns:

API:

  • public



90
91
92
93
94
# File 'lib/3scale/api/client.rb', line 90

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_limit(application_plan_id, metric_id, attributes) ⇒ Hash

Parameters:

  • Application Plan ID

  • Metric Attributes

  • Metric ID

Options Hash (attributes):

  • :period (String)

    Usage Limit period

  • :value (String)

    Usage Limit value

Returns:

API:

  • public



112
113
114
115
116
# File 'lib/3scale/api/client.rb', line 112

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_method(service_id, metric_id, attributes) ⇒ Hash

Parameters:

  • Service ID

  • Metric ID

  • Metric Attributes

Options Hash (attributes):

  • :name (String)

    Method Name

Returns:

API:

  • public



70
71
72
73
74
# File 'lib/3scale/api/client.rb', line 70

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



50
51
52
53
# File 'lib/3scale/api/client.rb', line 50

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

Parameters:

  • Service Attributes

Options Hash (attributes):

  • :name (String)

    Service Name

Returns:

API:

  • public



32
33
34
35
# File 'lib/3scale/api/client.rb', line 32

def create_service(attributes)
  response = http_client.post('/admin/api/services', body: { service: attributes })
  extract(entity: 'service', from: response)
end

#delete_application_plan_limit(application_plan_id, metric_id, limit_id) ⇒ Object

Parameters:

  • Application Plan ID

  • Metric ID

  • Usage Limit ID



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

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

#list_application_plan_limits(application_plan_id) ⇒ Array<Hash>

Parameters:

  • Application Plan ID

Returns:

API:

  • public



99
100
101
102
103
# File 'lib/3scale/api/client.rb', line 99

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_methods(service_id, metric_id) ⇒ Array<Hash>

Parameters:

  • Service ID

  • Metric ID

Returns:

API:

  • public



59
60
61
62
# File 'lib/3scale/api/client.rb', line 59

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

Parameters:

  • Service ID

Returns:

API:

  • public



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

def list_metrics(service_id)
  response = http_client.get("/admin/api/services/#{service_id}/metrics")
  extract(collection: 'metrics', entity: 'metric', from: response)
end

#list_service_application_plans(service_id) ⇒ Array<Hash>

Parameters:

  • Service ID

Returns:

API:

  • public



79
80
81
82
83
# File 'lib/3scale/api/client.rb', line 79

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

Returns:

API:

  • public



23
24
25
26
# File 'lib/3scale/api/client.rb', line 23

def list_services
  response = http_client.get('/admin/api/services')
  extract(collection: 'services', entity: 'service', from: response)
end

#show_service(id) ⇒ Hash

Parameters:

  • Service ID

Returns:

API:

  • public



16
17
18
19
# File 'lib/3scale/api/client.rb', line 16

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