Class: Hcloud::PrimaryIPResource
- Inherits:
-
AbstractResource
- Object
- AbstractResource
- Hcloud::PrimaryIPResource
- Defined in:
- lib/hcloud/primary_ip_resource.rb
Instance Attribute Summary
Attributes inherited from AbstractResource
Instance Method Summary collapse
- #[](arg) ⇒ Object
- #create(name:, type:, assignee_id: nil, assignee_type: 'server', datacenter: nil, auto_delete: nil, labels: {}) ⇒ Object
Methods inherited from AbstractResource
#all, bind_to, #each, filter_attributes, #find, #find_by, #initialize, #limit, #order, #page, #pagination, #per_page, resource, resource_class, resource_path, resource_url, #run, #where
Constructor Details
This class inherits a constructor from Hcloud::AbstractResource
Instance Method Details
#[](arg) ⇒ Object
9 10 11 12 13 14 |
# File 'lib/hcloud/primary_ip_resource.rb', line 9 def [](arg) case arg when Integer then find_by(id: arg) when String then find_by(name: arg) end end |
#create(name:, type:, assignee_id: nil, assignee_type: 'server', datacenter: nil, auto_delete: nil, labels: {}) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/hcloud/primary_ip_resource.rb', line 16 def create( name:, type:, assignee_id: nil, assignee_type: 'server', datacenter: nil, auto_delete: nil, labels: {} ) raise Hcloud::Error::InvalidInput, 'no name given' if name.blank? unless %w[ipv4 ipv6].include?(type.to_s) raise Hcloud::Error::InvalidInput, 'invalid type given' end raise Hcloud::Error::InvalidInput, 'no assignee_type given' if assignee_type.blank? if assignee_id.nil? && datacenter.nil? raise Hcloud::Error::InvalidInput, 'either assignee_id or datacenter must be given' end prepare_request( 'primary_ips', j: COLLECT_ARGS.call(__method__, binding), expected_code: 201 ) do |response| action = Action.new(client, response[:action]) if response[:action] [action, PrimaryIP.new(client, response[:primary_ip])] end end |