Class: IBM::Cloud::SDK::BaseVPC

Inherits:
Object
  • Object
show all
Defined in:
lib/ibm/cloud/sdk/vpc/base_vpc.rb

Overview

Container that encapsulates the VPC API.

Direct Known Subclasses

BaseCollection, BaseInstance, Vpc

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent, endpoint = nil) ⇒ BaseVPC

Returns a new instance of BaseVPC.



9
10
11
12
13
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 9

def initialize(parent, endpoint = nil)
  @endpoint = parent.url(endpoint)
  @connection = parent.connection
  @logger = parent.logger
end

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.



15
16
17
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 15

def connection
  @connection
end

#endpointObject (readonly)

Returns the value of attribute endpoint.



15
16
17
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 15

def endpoint
  @endpoint
end

#loggerObject (readonly)

Returns the value of attribute logger.



15
16
17
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 15

def logger
  @logger
end

Instance Method Details

#adhoc(method: 'get', path: nil, params: {}, payload_type: 'json', payload: {}) ⇒ Object



17
18
19
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 17

def adhoc(method: 'get', path: nil, params: {}, payload_type: 'json', payload: {})
  @connection.adhoc(method.to_sym, url(path), (params, payload_type, payload))
end

#delete(path: nil, params: {}) ⇒ Object



37
38
39
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 37

def delete(path: nil, params: {})
  adhoc(method: 'delete', path: path, params: params)
end

#get(path: nil, params: {}) ⇒ Object



21
22
23
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 21

def get(path: nil, params: {})
  adhoc(method: 'get', path: path, params: params)
end

#patch(payload = {}, path: nil, params: {}) ⇒ Object



33
34
35
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 33

def patch(payload = {},  path: nil, params: {})
  adhoc(method: 'patch', path: path, params: params, payload: payload)
end

#post(payload = {}, path: nil, params: {}, type: 'json') ⇒ Object



25
26
27
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 25

def post(payload = {}, path: nil, params: {}, type: 'json')
  adhoc(method: 'post', path: path, params: params, payload: payload, payload_type: type)
end

#put(payload = {}, path: nil, params: {}) ⇒ Object



29
30
31
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 29

def put(payload = {}, path: nil, params: {})
  adhoc(method: 'put', path: path, params: params, payload: payload)
end

#url(path = nil) ⇒ Object



41
42
43
44
45
# File 'lib/ibm/cloud/sdk/vpc/base_vpc.rb', line 41

def url(path = nil)
  return endpoint unless path

  "#{endpoint}/#{path}"
end