Sha256: 3e9ed526e740aa4197a5e8ff0dc41320d147b2a395340bcad72e657c93fecfc8

Contents?: true

Size: 1.53 KB

Versions: 9

Compression:

Stored size: 1.53 KB

Contents

require 'netbox_client_ruby/entity'
require 'netbox_client_ruby/api/ipam/role'
require 'netbox_client_ruby/api/dcim/site'
require 'netbox_client_ruby/api/ipam/vrf'
require 'netbox_client_ruby/api/ipam/vlan'
require 'netbox_client_ruby/api/ipam/vlan_group'
require 'netbox_client_ruby/api/tenancy/tenant'
require 'ipaddress'

module NetboxClientRuby
  module IPAM
    class Prefix
      include Entity

      id id: :id
      deletable true
      path 'ipam/prefixes/:id.json'
      creation_path 'ipam/prefixes/'
      object_fields(
        site: proc { |raw_data| DCIM::Site.new raw_data['id'] },
        vrf: proc { |raw_data| Vrf.new raw_data['id'] },
        tenant: proc { |raw_data| Tenancy::Tenant.new raw_data['id'] },
        vlan: proc { |raw_data| Vlan.new raw_data['id'] },
        status: proc { |raw_data| PrefixStatus.new raw_data['value'] },
        role: proc { |raw_data| Role.new raw_data['id'] },
        prefix: proc { |raw_data| IPAddress.parse raw_data }
      )
      readonly_fields :display_name
    end

    class PrefixStatus
      attr_reader :value, :label

      def initialize(status_value)
        @value = status_value
        @label = case status_value
                 when 0 then
                   'Container'.freeze
                 when 1 then
                   'Active'.freeze
                 when 2 then
                   'Reserved'.freeze
                 when 3 then
                   'Deprecated'.freeze
                 else
                   'UNDEFINED'.freeze
                 end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
netbox-client-ruby-0.2.3 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.2.2 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.2.1 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.2.0 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.1.4 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.1.3 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.1.2 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.1.1 lib/netbox_client_ruby/api/ipam/prefix.rb
netbox-client-ruby-0.1.0 lib/netbox_client_ruby/api/ipam/prefix.rb