Sha256: 2eb850cedbbd1a7fe5f8c9eba5937d5385c4e4c486544df82073457c12ab5828

Contents?: true

Size: 1.08 KB

Versions: 16

Compression:

Stored size: 1.08 KB

Contents

require 'netbox_client_ruby/entity'
require 'netbox_client_ruby/api/dcim/interface'
require 'netbox_client_ruby/api/ipam/vrf'
require 'netbox_client_ruby/api/tenancy/tenant'
require 'ipaddress'

module NetboxClientRuby
  module IPAM
    class IpAddress
      include Entity

      STATUS_VALUES = {
        active: 1,
        reserved: 2,
        deprecated: 3,
        dhcp: 5
      }.freeze

      id id: :id
      deletable true
      path 'ipam/ip-addresses/:id.json'
      creation_path 'ipam/ip-addresses/'
      object_fields(
        vrf: proc { |raw_data| Vrf.new raw_data['id'] },
        tenant: proc { |raw_data| Tenancy::Tenant.new raw_data['id'] },
        status: proc { |raw_data| STATUS_VALUES.key(raw_data['value']) || raw_data['value'] },
        interface: proc { |raw_data| DCIM::Interface.new raw_data['id'] },
        address: proc { |raw_ip| IPAddress.parse(raw_ip) }
      )
      readonly_fields :display_name

      def status=(value)
        status_code_lookup = STATUS_VALUES.fetch(value, value)
        method_missing(:status=, status_code_lookup)
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
netbox-client-ruby-0.4.6 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.4.3 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.4.2 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.4.1 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.4.0 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.3.1 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.3.0 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.2.3 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.2.2 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.2.1 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.2.0 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.1.4 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.1.3 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.1.2 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.1.1 lib/netbox_client_ruby/api/ipam/ip_address.rb
netbox-client-ruby-0.1.0 lib/netbox_client_ruby/api/ipam/ip_address.rb