Metadata-Version: 2.1
Name: netdot
Version: 0.4.0rc1
Summary: Python wrapper for Netdot Web API.
Author-email: University of Oregon <ntsjenkins@uoregon.edu>
License-Expression: MIT
License-File: LICENSE
Keywords: API,IPAM,NTS,REST,UO,VRA,netdot
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: configargparse
Requires-Dist: humanize
Requires-Dist: pathvalidate
Requires-Dist: requests<3,>=2
Requires-Dist: tabulate>=0.8
Requires-Dist: tqdm
Requires-Dist: uologging>=0.7.0
Description-Content-Type: text/markdown

A python wrapper for UO-NetDot's RESTful API.

> ⚠ Disclaimer: From 0.2.0 onward, this API wrapper does not ensure support for the [de facto Open Source version of NetDot (GitHub)](https://github.com/cvicente/Netdot).

[![PyPI version](https://badge.fury.io/py/netdot.svg)](https://badge.fury.io/py/netdot)

# Install 

This package is deployed to pypi.org.
Download it with `pip`:

    pip install netdot

# Interactive Usage (Python interpreter)

Before getting into building a massive integration/tool, you might jump in and get some experience.
Thankfully, we have the [Python 3 Interpreter (external)](https://docs.python.org/3/tutorial/interpreter.html) where we can jump in and do some testing!

    # Enter the Python interpreter by running just "python" in your shell
    $ python
    Python 3.8.10 (default, May 26 2023, 14:05:08)     
    ... omitted for brevity...
    >>> import netdot
    >>>

> ℹ The Python interpreter is often referred to as 'a REPL' (Read-Eval-Print-Loop).
> If you are unfamiliar with the Python interpreter, aka 'REPL', you might want to get started by reading ["Using the REPL (in VSCode)" documentation](https://www.learnpython.dev/01-introduction/02-requirements/05-vs-code/04-the-repl-in-vscode/).

With the netdot package imported, you can proceed with setting up a connecting and downloading some data!

> ℹ Many methods of `netdot.Repository` and `netdot.dataclasses` are actually runtime-generated code (well documented in our [API documentation](#netdot-python-api-generated-documentation)).
> Using the Repository interactively at the interpreter allows using features like **tab completion**. 

## Connecting in the interpreter: `netdot.connect()`

We have enabled interpreter-usage as a first-class feature.
In particular, you will want to use the `connect` function like the following.

> ℹ `netdot.connect()` returns a `netdot.Repository` instance.

    >>> import netdot
    >>> nd_repo = netdot.connect()
    What is the URL of the NetDot server? [https://nsdb.uoregon.edu]: ('enter' to use default)
    NetDot username: myusername
    NetDot password: ********** (using getpass module, to securely collect password)
    >>> 

We now have a `netdot.Repository` named `nd_repo` connected to netdot!

### Example: Lookup IP Address

As an example, you can use this API to lookup an IP Address.

    >>> ipaddr = nd_repo.get_ipblock_by_address('128.223.61.69')

Lets assume we want to determine who all may depend on this IP Address.
We'll see if we can discover useful information from the `used_by` field of this IP Address, or its parent(s)...

    >>> ipaddr.used_by
    None
    >>> subnet = ipaddr.get_parent()
    >>> subnet.used_by
    'Network & Telecom Services'
    >>> ip_container = subnet.get_parent()
    >>> ip_container.used_by
    'University of Oregon (3582)'

Perhaps it is more useful to look at the info

> ℹ Similar to `get_parent`, there is also a `get_children` method.

### Example: Lookup DNS Record by Address 

You can use this API to lookup the DNS Resource Record (RR) associated to some IP Address.

    >>> dns_record = nd_repo.get_rr_by_address('128.223.37.93')

The RR contains several pieces of information that may be useful!

    >>> dns_record.info
    'LOC: 123 FooBar Hall CON: Jenny J, 867-5309'

### Example: Lookup Edge Port for MAC Address in NetDot

> **⚠ WARNING**: "find_edge_port" includes assumptions that can result in inaccurate results.
> See full warning at end of this section for more info.

As an example, you can use this API to lookup the Edge Port associated to some MAC Address.

> ℹ Tip: This is useful for tracking down the physical location of some MAC Address.
> 
> ℹ This requires a LOT of HTTP requests.
> HTTP requests can be  [parallelized via multithreading (discussed below)](#multithreading-for-parallelizing-http-requests).

    >>> interface = nd_repo.find_edge_port('8C3BADDA9EF1')

Once the interface lookup is complete (may take more than 60 seconds), it is very easy to check if there is any "`jack`" (location information) associated to this Interface!

    >>> interface.jack
    '146A010B'

> **⚠ WARNING**: "find_edge_port" includes assumptions that can result in inaccurate results. 
> (This issue is present when looking up an edge port using NetDot's frontend as well)
> 
> Particularly, **if more than one forwarding table contains the MAC Address**, then NetDot will select the one whose forwarding table had the least entries.
>
> This can be inaccurate especially if a forwarding table scan is happening while trying to `find_edge_port`.

### Example: Load All Devices for a Site

Want to see all the devices that are located within the Site named "Death Star?"

First lookup the site:

    >>> site_name = 'Death Star'
    >>> sites = nd_repo.get_sites_where(name=site_name)
    >>> assert len(sites) == 1, f"Expected exactly one site with name {site_name}, found: {sites}"
    >>> site = sites[0]

Then, simply call "load_devices" on that site!

    >>> devices = site.load_devices()

### Example: Delete All Devices for a Site

**Continuing from the last example,** imagine 'Death Star' has been fully removed from your campus (pesky rebels).
You now want to go ahead and delete all the devices associated to this site.

    >>> for device in devices:
    >>>     device.delete()

The work has been prepared!
Take a look at what changes will occur using `show_changes` on the Repository object.

    >>> nd_repo.show_changes()
    ...    1. Will DELETE Device: Device(id=123, site_xlink=...
    ...    2. Will DELETE Device: Device(id=9000, site_xlink=...

If the deletes all look good, then go ahead and commit them using `save_changes`.

    >>> nd_repo.save_changes()

### Example: `show_changes` and `show_changes_as_tables`

Continuing from the prior example, we now know that `show_changes` will show exactly what will happen, step by step.

If you want a higher level overview of what is going to happen, you can use `show_changes_as_tables`:

    >>> nd_repo.show_changes_as_tables()
    ... 
    ... # TODO


> For an exceptionally small screen, you might like to use the following custom settings, to further truncate the cells of data printed to the screen.
> ```
> export NETDOT_CLI_TERSE_COL_WIDTH=8  # default is 16
> export NETDOT_CLI_TERSE_MAX_CHARS=16 # default is 64 (4*NETDOT_CLI_TERSE_COL_WIDTH)
> ```

### Example: Plan and Create a new Netdot Site

Imagine you want to add a new site in Netdot, with rooms and all.

Assume that we are adding "Test Site," a simple site with just 1 floor, 3 rooms, and 1 closet.
Create all these objects within your dry run:

    >>> site =  nd_repo.create_new(netdot.Site(name='Test Site'))
    Will CREATE Site: Site(id=None, name='Test Site', aliases=None,
    >>> floor = site.add_floor(netdot.Floor(level='Test Floor'))
    Will CREATE Floor: Floor(id=None, info=None, level='Test Floor'
    >>> room1 = floor.add_room(netdot.Room(name='Test Room 1'))
    Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None,
    >>> room2 = floor.add_room(netdot.Room(name='Test Room 2'))
    Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None,
    >>> room3 = floor.add_room(netdot.Room(name='Test Room 3'))
    Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None,
    >>> closet = room3.add_closet(netdot.Closet(name='Test Closet 1'))
    Will CREATE Closet: Closet(id=None, access_key_type=None, asbes

Then, confirm that the changes look good.

    >>> nd_repo.show_changes()
    1. Will CREATE Site: Site(id=None, name='Test Site', aliases=None, availability=None, availability_xlink=None, contactlist=
    2. Will CREATE Floor: Floor(id=None, info=None, level='Test Floor', site=Site(id=None, name='Test Site', aliases=None, avai
    3. Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='Test Floor', site=Site(id=None, name='Test Site',
    4. Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='Test Floor', site=Site(id=None, name='Test Site',
    5. Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='Test Floor', site=Site(id=None, name='Test Site',
    6. Will CREATE Closet: Closet(id=None, access_key_type=None, asbestos_tiles=False, catv_taps=None, converted_patch_panels=F


    nd_repo.save_changes()



## Automation Examples

The examples until now have all focused on the user running code directly in the Python Interpreter.
The remainder of the examples are 

### Example: Connecting using Environment Variables

For starters, we need to set up a `Repository` to interact with NetDot.
Environment variables can be a good method for providing credentials to your script, as suggested here:

> ℹ This pairs nicely with Continuous Integration! 
> It also works well enough for local development using [python-dotenv](https://pypi.org/project/python-dotenv/) or similar.

    import os
    import netdot

    nd_repo = netdot.Repository(
        netdot_url=os.getenv('NETDOT_URL'), 
        user=os.getenv('NETDOT_USERNAME'), 
        password=os.getenv('NETDOT_PASSWORD'),
    )

### Example: Update 'aliases' of Sites in NetDot

As a simple script example, imagine we want to update the 'aliases' with the string "(odd layout)" for some set of sites in NetDot.
In this example, we will write a script to do just that.

> For those who want to just see the script, there is the [full code sample below](#code-sample-for-example-update-aliases-of-sites-in-netdot)

Now, we are given a list of `SITE_IDS` to which we want to update the 'alias' with the string "(odd layout)".

    SITE_IDS = [98, 124, 512, 123, 111]

We can use Python list comprehensions to download the sites, and make the updates locally.

    sites = [ nd_repo.get_site(id) for id in SITE_IDS ]
    updated_sites = [ site.aliases=f'{site.aliases}(odd layout)' for site in sites ]

Then, it is time to apply the updates to the repository.

    for updated_site in updated_sites:
        updated_site.update()

Assuming that the repository is running in DRY RUN mode, then finalize the 

    nd_repo.save_changes()

#### Code Sample for Example: Update 'aliases' of Sites in NetDot

The full code sample is provided here.

    import netdot

    repo = netdot.Repository(...)  # Provide credentials, e.g. via environment variables using `os` module

    SITE_IDS = [98, 124, 512, 123, 111]
    sites = [ nd_repo.get_site(id) for id in SITE_IDS ]
    updated_sites = [ site.aliases=f'{site.aliases}(odd layout)' for site in sites ]

    for updated_site in updated_sites:
        updated_site.create_or_update()

## Multithreading for Parallelizing HTTP GET Requests

The `netdot.Repository` class can multithread HTTP requests.

To enable this, set the `NETDOT_CLI_THREADS` Environment Variable before running your python code.

    export NETDOT_CLI_THREADS=4

You can override this number by passing the `threads` keyword argument to the Repository constructor.

    >>> repo = netdot.Repository(..., threads=4)

> This `threads` keyword argument can be used in the [interactive interface (discussed above)](#interactive-usage-python-interpreter) as well.
> 
>     >>> repo = netdot.connect(threads=4)


# Netdot Python API Generated Documentation
# Version [0.4.0]

> Generated on Nov 01, 2023 at 02:58PM 
>
> Netdot Python API contains many generated methods.
> This documentation is intended to help you understand what is available.



## class `netdot.Repository`

### clear_propose_changes

> ```clear_propose_changes(self)```

```
Reset the proposed changes (dry run) for this Netdot Repository.
```

### create_new

> ```create_new(self, new_data: netdot.dataclasses.base.NetdotAPIDataclass) -> netdot.dataclasses.base.NetdotAPIDataclass```

```
Create some new object in Netdot.

> NOTE: Upon creation, the `id` field of new_data will be populated.

Args:
    new_data (netdot.NetdotAPIDataclass): The new data to use for the new Netdot object.

Returns:
    netdot.NetdotAPIDataclass: The new object (with `id` populated).

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, data: netdot.dataclasses.base.NetdotAPIDataclass, confirm=True, ignore_404=True)```

```
Delete an existing object from Netdot.

> ⚠ WARNING: This is irreversible. Use with caution.

Args:
    data (NetdotAPIDataclass): The object to be deleted.
    confirm (bool): Assume interactive and ask user 'Proceed? ...' before deleting. Default True.
    ignore_404 (bool): Default True. Ignore HTTP 404 errors. (Why? no need to delete an object if it doesn't exist!)

Raises:
    HTTPError: Could occur for various reasons.
    NetdotDeleteError: If the object cannot be deleted for some other reason.
    TypeError: If data is not a subclass of NetdotAPIDataclass.
```

### disable_propose_changes

> ```disable_propose_changes(self)```

```
Disable the 'propose changes' or DRY RUN feature on this Netdot Repository.

After this, all changes will be applied immediately to Netdot.
```

### enable_propose_changes

> ```enable_propose_changes(self, print_changes=True)```

```
Enable the 'propose changes' or DRY RUN feature on this Netdot Repository.

After this, all changes will be queued, only to be applied when `save_changes` is called.
```

### find_edge_port

> ```find_edge_port(self, mac_address: str) -> 'netdot.Interface'```

```
Get the Edge Port (Interface) associated to some MAC Address.

> NOTE: This will make `N+M` HTTP Requests (where N ).

The idea is to get all device ports whose latest forwarding tables included this address.
If we get more than one, select the one whose forwarding table had the least entries.

Args:
    mac_address (str): A MAC Address to lookup.

Returns:
    netdot.Interface: The edge port associated to the provided MAC Address.

Raises:
    HTTPError: If the MAC Address cannot be found, or if any subsequent HTTP requests fail.
```

### get_accessright

> ```get_accessright(self, id: int) -> netdot.dataclasses.users.AccessRight```

```
Get info about a AccessRight from Netdot.

Args:
    id (int): The ID of the AccessRight to retrieve.

Returns:
    netdot.AccessRight: The AccessRight with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the AccessRight cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_accessrights_where

> ```get_accessrights_where(self, **url_params) -> List[netdot.dataclasses.users.AccessRight]```

```
Get info about AccessRights from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.AccessRight]: AccessRights from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_asn

> ```get_asn(self, id: int) -> netdot.dataclasses.bgp.ASN```

```
Get info about a ASN from Netdot.

Args:
    id (int): The ID of the ASN to retrieve.

Returns:
    netdot.ASN: The ASN with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the ASN cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_asns_where

> ```get_asns_where(self, **url_params) -> List[netdot.dataclasses.bgp.ASN]```

```
Get info about ASNs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.ASN]: ASNs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_asset

> ```get_asset(self, id: int) -> netdot.dataclasses.asset.Asset```

```
Get info about a Asset from Netdot.

Args:
    id (int): The ID of the Asset to retrieve.

Returns:
    netdot.Asset: The Asset with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Asset cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_assets_by_maint_contract

> ```get_assets_by_maint_contract(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Assets associated to a particular MaintContract.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Asset.

Returns:
    List[netdot.Asset]: The list of Assets associated to the Asset.
```

### get_assets_by_physaddr

> ```get_assets_by_physaddr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Assets associated to a particular PhysAddr.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Asset.

Returns:
    List[netdot.Asset]: The list of Assets associated to the Asset.
```

### get_assets_by_product_id

> ```get_assets_by_product_id(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Assets associated to a particular Product.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Asset.

Returns:
    List[netdot.Asset]: The list of Assets associated to the Asset.
```

### get_assets_where

> ```get_assets_where(self, **url_params) -> List[netdot.dataclasses.asset.Asset]```

```
Get info about Assets from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Asset]: Assets from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_audit

> ```get_audit(self, id: int) -> netdot.dataclasses.users.Audit```

```
Get info about a Audit from Netdot.

Args:
    id (int): The ID of the Audit to retrieve.

Returns:
    netdot.Audit: The Audit with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Audit cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_audits_where

> ```get_audits_where(self, **url_params) -> List[netdot.dataclasses.users.Audit]```

```
Get info about Audits from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Audit]: Audits from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_availabilities_where

> ```get_availabilities_where(self, **url_params) -> List[netdot.dataclasses.misc.Availability]```

```
Get info about Availabilities from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Availability]: Availabilities from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_availability

> ```get_availability(self, id: int) -> netdot.dataclasses.misc.Availability```

```
Get info about a Availability from Netdot.

Args:
    id (int): The ID of the Availability to retrieve.

Returns:
    netdot.Availability: The Availability with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Availability cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_backbonecable

> ```get_backbonecable(self, id: int) -> netdot.dataclasses.cables.BackboneCable```

```
Get info about a BackboneCable from Netdot.

Args:
    id (int): The ID of the BackboneCable to retrieve.

Returns:
    netdot.BackboneCable: The BackboneCable with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the BackboneCable cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_backbonecables_by_end_closet

> ```get_backbonecables_by_end_closet(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BackboneCables associated to a particular Closet.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BackboneCable.

Returns:
    List[netdot.BackboneCable]: The list of BackboneCables associated to the BackboneCable.
```

### get_backbonecables_by_owner

> ```get_backbonecables_by_owner(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BackboneCables associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BackboneCable.

Returns:
    List[netdot.BackboneCable]: The list of BackboneCables associated to the BackboneCable.
```

### get_backbonecables_by_start_closet

> ```get_backbonecables_by_start_closet(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BackboneCables associated to a particular Closet.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BackboneCable.

Returns:
    List[netdot.BackboneCable]: The list of BackboneCables associated to the BackboneCable.
```

### get_backbonecables_by_type

> ```get_backbonecables_by_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BackboneCables associated to a particular CableType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BackboneCable.

Returns:
    List[netdot.BackboneCable]: The list of BackboneCables associated to the BackboneCable.
```

### get_backbonecables_where

> ```get_backbonecables_where(self, **url_params) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Get info about BackboneCables from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.BackboneCable]: BackboneCables from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_bgppeering

> ```get_bgppeering(self, id: int) -> netdot.dataclasses.bgp.BGPPeering```

```
Get info about a BGPPeering from Netdot.

Args:
    id (int): The ID of the BGPPeering to retrieve.

Returns:
    netdot.BGPPeering: The BGPPeering with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the BGPPeering cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_bgppeerings_by_contactlist

> ```get_bgppeerings_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BGPPeerings associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BGPPeering.

Returns:
    List[netdot.BGPPeering]: The list of BGPPeerings associated to the BGPPeering.
```

### get_bgppeerings_by_device

> ```get_bgppeerings_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BGPPeerings associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BGPPeering.

Returns:
    List[netdot.BGPPeering]: The list of BGPPeerings associated to the BGPPeering.
```

### get_bgppeerings_by_entity

> ```get_bgppeerings_by_entity(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of BGPPeerings associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular BGPPeering.

Returns:
    List[netdot.BGPPeering]: The list of BGPPeerings associated to the BGPPeering.
```

### get_bgppeerings_where

> ```get_bgppeerings_where(self, **url_params) -> List[netdot.dataclasses.bgp.BGPPeering]```

```
Get info about BGPPeerings from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.BGPPeering]: BGPPeerings from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_cablestrand

> ```get_cablestrand(self, id: int) -> netdot.dataclasses.cables.CableStrand```

```
Get info about a CableStrand from Netdot.

Args:
    id (int): The ID of the CableStrand to retrieve.

Returns:
    netdot.CableStrand: The CableStrand with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the CableStrand cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_cablestrands_by_cable

> ```get_cablestrands_by_cable(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of CableStrands associated to a particular BackboneCable.

Args:
    entity_id (int,NetdotAPIDataclass): The particular CableStrand.

Returns:
    List[netdot.CableStrand]: The list of CableStrands associated to the CableStrand.
```

### get_cablestrands_by_fiber_type

> ```get_cablestrands_by_fiber_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of CableStrands associated to a particular FiberType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular CableStrand.

Returns:
    List[netdot.CableStrand]: The list of CableStrands associated to the CableStrand.
```

### get_cablestrands_by_status

> ```get_cablestrands_by_status(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of CableStrands associated to a particular StrandStatus.

Args:
    entity_id (int,NetdotAPIDataclass): The particular CableStrand.

Returns:
    List[netdot.CableStrand]: The list of CableStrands associated to the CableStrand.
```

### get_cablestrands_where

> ```get_cablestrands_where(self, **url_params) -> List[netdot.dataclasses.cables.CableStrand]```

```
Get info about CableStrands from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.CableStrand]: CableStrands from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_cabletype

> ```get_cabletype(self, id: int) -> netdot.dataclasses.cables.CableType```

```
Get info about a CableType from Netdot.

Args:
    id (int): The ID of the CableType to retrieve.

Returns:
    netdot.CableType: The CableType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the CableType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_cabletypes_where

> ```get_cabletypes_where(self, **url_params) -> List[netdot.dataclasses.cables.CableType]```

```
Get info about CableTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.CableType]: CableTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_circuit

> ```get_circuit(self, id: int) -> netdot.dataclasses.cables.Circuit```

```
Get info about a Circuit from Netdot.

Args:
    id (int): The ID of the Circuit to retrieve.

Returns:
    netdot.Circuit: The Circuit with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Circuit cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_circuits_by_linkid

> ```get_circuits_by_linkid(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Circuits associated to a particular SiteLink.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Circuit.

Returns:
    List[netdot.Circuit]: The list of Circuits associated to the Circuit.
```

### get_circuits_by_status

> ```get_circuits_by_status(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Circuits associated to a particular CircuitStatus.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Circuit.

Returns:
    List[netdot.Circuit]: The list of Circuits associated to the Circuit.
```

### get_circuits_by_type

> ```get_circuits_by_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Circuits associated to a particular CircuitType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Circuit.

Returns:
    List[netdot.Circuit]: The list of Circuits associated to the Circuit.
```

### get_circuits_by_vendor

> ```get_circuits_by_vendor(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Circuits associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Circuit.

Returns:
    List[netdot.Circuit]: The list of Circuits associated to the Circuit.
```

### get_circuits_where

> ```get_circuits_where(self, **url_params) -> List[netdot.dataclasses.cables.Circuit]```

```
Get info about Circuits from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Circuit]: Circuits from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_circuitstatus

> ```get_circuitstatus(self, id: int) -> netdot.dataclasses.cables.CircuitStatus```

```
Get info about a CircuitStatus from Netdot.

Args:
    id (int): The ID of the CircuitStatus to retrieve.

Returns:
    netdot.CircuitStatus: The CircuitStatus with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the CircuitStatus cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_circuitstatuses_where

> ```get_circuitstatuses_where(self, **url_params) -> List[netdot.dataclasses.cables.CircuitStatus]```

```
Get info about CircuitStatuses from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.CircuitStatus]: CircuitStatuses from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_circuittype

> ```get_circuittype(self, id: int) -> netdot.dataclasses.cables.CircuitType```

```
Get info about a CircuitType from Netdot.

Args:
    id (int): The ID of the CircuitType to retrieve.

Returns:
    netdot.CircuitType: The CircuitType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the CircuitType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_circuittypes_where

> ```get_circuittypes_where(self, **url_params) -> List[netdot.dataclasses.cables.CircuitType]```

```
Get info about CircuitTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.CircuitType]: CircuitTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_closet

> ```get_closet(self, id: int) -> netdot.dataclasses.site.Closet```

```
Get info about a Closet from Netdot.

Args:
    id (int): The ID of the Closet to retrieve.

Returns:
    netdot.Closet: The Closet with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Closet cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_closets_by_room

> ```get_closets_by_room(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Closets associated to a particular Room.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Closet.

Returns:
    List[netdot.Closet]: The list of Closets associated to the Closet.
```

### get_closets_where

> ```get_closets_where(self, **url_params) -> List[netdot.dataclasses.site.Closet]```

```
Get info about Closets from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Closet]: Closets from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_contact

> ```get_contact(self, id: int) -> netdot.dataclasses.users.Contact```

```
Get info about a Contact from Netdot.

Args:
    id (int): The ID of the Contact to retrieve.

Returns:
    netdot.Contact: The Contact with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Contact cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_contactlist

> ```get_contactlist(self, id: int) -> netdot.dataclasses.users.ContactList```

```
Get info about a ContactList from Netdot.

Args:
    id (int): The ID of the ContactList to retrieve.

Returns:
    netdot.ContactList: The ContactList with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the ContactList cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_contactlists_where

> ```get_contactlists_where(self, **url_params) -> List[netdot.dataclasses.users.ContactList]```

```
Get info about ContactLists from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.ContactList]: ContactLists from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_contacts_by_contactlist

> ```get_contacts_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Contacts associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Contact.

Returns:
    List[netdot.Contact]: The list of Contacts associated to the Contact.
```

### get_contacts_by_contacttype

> ```get_contacts_by_contacttype(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Contacts associated to a particular ContactType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Contact.

Returns:
    List[netdot.Contact]: The list of Contacts associated to the Contact.
```

### get_contacts_by_notify_email

> ```get_contacts_by_notify_email(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Contacts associated to a particular Availability.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Contact.

Returns:
    List[netdot.Contact]: The list of Contacts associated to the Contact.
```

### get_contacts_by_notify_pager

> ```get_contacts_by_notify_pager(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Contacts associated to a particular Availability.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Contact.

Returns:
    List[netdot.Contact]: The list of Contacts associated to the Contact.
```

### get_contacts_by_notify_voice

> ```get_contacts_by_notify_voice(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Contacts associated to a particular Availability.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Contact.

Returns:
    List[netdot.Contact]: The list of Contacts associated to the Contact.
```

### get_contacts_by_person

> ```get_contacts_by_person(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Contacts associated to a particular Person.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Contact.

Returns:
    List[netdot.Contact]: The list of Contacts associated to the Contact.
```

### get_contacts_where

> ```get_contacts_where(self, **url_params) -> List[netdot.dataclasses.users.Contact]```

```
Get info about Contacts from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Contact]: Contacts from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_contacttype

> ```get_contacttype(self, id: int) -> netdot.dataclasses.users.ContactType```

```
Get info about a ContactType from Netdot.

Args:
    id (int): The ID of the ContactType to retrieve.

Returns:
    netdot.ContactType: The ContactType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the ContactType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_contacttypes_where

> ```get_contacttypes_where(self, **url_params) -> List[netdot.dataclasses.users.ContactType]```

```
Get info about ContactTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.ContactType]: ContactTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_device

> ```get_device(self, id: int) -> netdot.dataclasses.device.Device```

```
Get info about a Device from Netdot.

Args:
    id (int): The ID of the Device to retrieve.

Returns:
    netdot.Device: The Device with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Device cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_deviceattr

> ```get_deviceattr(self, id: int) -> netdot.dataclasses.device.DeviceAttr```

```
Get info about a DeviceAttr from Netdot.

Args:
    id (int): The ID of the DeviceAttr to retrieve.

Returns:
    netdot.DeviceAttr: The DeviceAttr with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DeviceAttr cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_deviceattrname

> ```get_deviceattrname(self, id: int) -> netdot.dataclasses.device.DeviceAttrName```

```
Get info about a DeviceAttrName from Netdot.

Args:
    id (int): The ID of the DeviceAttrName to retrieve.

Returns:
    netdot.DeviceAttrName: The DeviceAttrName with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DeviceAttrName cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_deviceattrnames_where

> ```get_deviceattrnames_where(self, **url_params) -> List[netdot.dataclasses.device.DeviceAttrName]```

```
Get info about DeviceAttrNames from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DeviceAttrName]: DeviceAttrNames from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_deviceattrs_by_device

> ```get_deviceattrs_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DeviceAttrs associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DeviceAttr.

Returns:
    List[netdot.DeviceAttr]: The list of DeviceAttrs associated to the DeviceAttr.
```

### get_deviceattrs_by_name

> ```get_deviceattrs_by_name(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DeviceAttrs associated to a particular DeviceAttrName.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DeviceAttr.

Returns:
    List[netdot.DeviceAttr]: The list of DeviceAttrs associated to the DeviceAttr.
```

### get_deviceattrs_where

> ```get_deviceattrs_where(self, **url_params) -> List[netdot.dataclasses.device.DeviceAttr]```

```
Get info about DeviceAttrs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DeviceAttr]: DeviceAttrs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_devicecontacts

> ```get_devicecontacts(self, id: int) -> netdot.dataclasses.device.DeviceContacts```

```
Get info about a DeviceContacts from Netdot.

Args:
    id (int): The ID of the DeviceContacts to retrieve.

Returns:
    netdot.DeviceContacts: The DeviceContacts with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DeviceContacts cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_devicecontacts_by_contactlist

> ```get_devicecontacts_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DeviceContacts associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DeviceContacts.

Returns:
    List[netdot.DeviceContacts]: The list of DeviceContacts associated to the DeviceContacts.
```

### get_devicecontacts_by_device

> ```get_devicecontacts_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DeviceContacts associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DeviceContacts.

Returns:
    List[netdot.DeviceContacts]: The list of DeviceContacts associated to the DeviceContacts.
```

### get_devicecontacts_where

> ```get_devicecontacts_where(self, **url_params) -> List[netdot.dataclasses.device.DeviceContacts]```

```
Get info about DeviceContacts from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DeviceContacts]: DeviceContacts from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_devicemodule

> ```get_devicemodule(self, id: int) -> netdot.dataclasses.device.DeviceModule```

```
Get info about a DeviceModule from Netdot.

Args:
    id (int): The ID of the DeviceModule to retrieve.

Returns:
    netdot.DeviceModule: The DeviceModule with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DeviceModule cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_devicemodules_by_device

> ```get_devicemodules_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DeviceModules associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DeviceModule.

Returns:
    List[netdot.DeviceModule]: The list of DeviceModules associated to the DeviceModule.
```

### get_devicemodules_where

> ```get_devicemodules_where(self, **url_params) -> List[netdot.dataclasses.device.DeviceModule]```

```
Get info about DeviceModules from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DeviceModule]: DeviceModules from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_devices_by_asset_id

> ```get_devices_by_asset_id(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular Asset.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_monitorstatus

> ```get_devices_by_monitorstatus(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular MonitorStatus.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_name

> ```get_devices_by_name(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_owner

> ```get_devices_by_owner(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_room

> ```get_devices_by_room(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular Room.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_site

> ```get_devices_by_site(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_snmp_target

> ```get_devices_by_snmp_target(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_by_used_by

> ```get_devices_by_used_by(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Devices associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Device.

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.
```

### get_devices_where

> ```get_devices_where(self, **url_params) -> List[netdot.dataclasses.device.Device]```

```
Get info about Devices from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Device]: Devices from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpattr

> ```get_dhcpattr(self, id: int) -> netdot.dataclasses.dhcp.DHCPAttr```

```
Get info about a DHCPAttr from Netdot.

Args:
    id (int): The ID of the DHCPAttr to retrieve.

Returns:
    netdot.DHCPAttr: The DHCPAttr with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DHCPAttr cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpattrname

> ```get_dhcpattrname(self, id: int) -> netdot.dataclasses.dhcp.DHCPAttrName```

```
Get info about a DHCPAttrName from Netdot.

Args:
    id (int): The ID of the DHCPAttrName to retrieve.

Returns:
    netdot.DHCPAttrName: The DHCPAttrName with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DHCPAttrName cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpattrnames_where

> ```get_dhcpattrnames_where(self, **url_params) -> List[netdot.dataclasses.dhcp.DHCPAttrName]```

```
Get info about DHCPAttrNames from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DHCPAttrName]: DHCPAttrNames from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpattrs_where

> ```get_dhcpattrs_where(self, **url_params) -> List[netdot.dataclasses.dhcp.DHCPAttr]```

```
Get info about DHCPAttrs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DHCPAttr]: DHCPAttrs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpscope

> ```get_dhcpscope(self, id: int) -> netdot.dataclasses.dhcp.DHCPScope```

```
Get info about a DHCPScope from Netdot.

Args:
    id (int): The ID of the DHCPScope to retrieve.

Returns:
    netdot.DHCPScope: The DHCPScope with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DHCPScope cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpscopes_by_container

> ```get_dhcpscopes_by_container(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DHCPScopes associated to a particular DHCPScope.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DHCPScope.

Returns:
    List[netdot.DHCPScope]: The list of DHCPScopes associated to the DHCPScope.
```

### get_dhcpscopes_by_ipblock

> ```get_dhcpscopes_by_ipblock(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DHCPScopes associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DHCPScope.

Returns:
    List[netdot.DHCPScope]: The list of DHCPScopes associated to the DHCPScope.
```

### get_dhcpscopes_by_physaddr

> ```get_dhcpscopes_by_physaddr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DHCPScopes associated to a particular PhysAddr.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DHCPScope.

Returns:
    List[netdot.DHCPScope]: The list of DHCPScopes associated to the DHCPScope.
```

### get_dhcpscopes_by_type

> ```get_dhcpscopes_by_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DHCPScopes associated to a particular DHCPScopeType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DHCPScope.

Returns:
    List[netdot.DHCPScope]: The list of DHCPScopes associated to the DHCPScope.
```

### get_dhcpscopes_where

> ```get_dhcpscopes_where(self, **url_params) -> List[netdot.dataclasses.dhcp.DHCPScope]```

```
Get info about DHCPScopes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DHCPScope]: DHCPScopes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpscopetype

> ```get_dhcpscopetype(self, id: int) -> netdot.dataclasses.dhcp.DHCPScopeType```

```
Get info about a DHCPScopeType from Netdot.

Args:
    id (int): The ID of the DHCPScopeType to retrieve.

Returns:
    netdot.DHCPScopeType: The DHCPScopeType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DHCPScopeType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpscopetypes_where

> ```get_dhcpscopetypes_where(self, **url_params) -> List[netdot.dataclasses.dhcp.DHCPScopeType]```

```
Get info about DHCPScopeTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DHCPScopeType]: DHCPScopeTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpscopeuse

> ```get_dhcpscopeuse(self, id: int) -> netdot.dataclasses.dhcp.DHCPScopeUse```

```
Get info about a DHCPScopeUse from Netdot.

Args:
    id (int): The ID of the DHCPScopeUse to retrieve.

Returns:
    netdot.DHCPScopeUse: The DHCPScopeUse with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the DHCPScopeUse cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_dhcpscopeuses_by_scope

> ```get_dhcpscopeuses_by_scope(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DHCPScopeUses associated to a particular DHCPScope.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DHCPScopeUse.

Returns:
    List[netdot.DHCPScopeUse]: The list of DHCPScopeUses associated to the DHCPScopeUse.
```

### get_dhcpscopeuses_by_template

> ```get_dhcpscopeuses_by_template(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of DHCPScopeUses associated to a particular DHCPScope.

Args:
    entity_id (int,NetdotAPIDataclass): The particular DHCPScopeUse.

Returns:
    List[netdot.DHCPScopeUse]: The list of DHCPScopeUses associated to the DHCPScopeUse.
```

### get_dhcpscopeuses_where

> ```get_dhcpscopeuses_where(self, **url_params) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]```

```
Get info about DHCPScopeUses from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.DHCPScopeUse]: DHCPScopeUses from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entities_by_availability

> ```get_entities_by_availability(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Entities associated to a particular Availability.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Entity.

Returns:
    List[netdot.Entity]: The list of Entities associated to the Entity.
```

### get_entities_by_contactlist

> ```get_entities_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Entities associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Entity.

Returns:
    List[netdot.Entity]: The list of Entities associated to the Entity.
```

### get_entities_where

> ```get_entities_where(self, **url_params) -> List[netdot.dataclasses.entity.Entity]```

```
Get info about Entities from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Entity]: Entities from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entity

> ```get_entity(self, id: int) -> netdot.dataclasses.entity.Entity```

```
Get info about a Entity from Netdot.

Args:
    id (int): The ID of the Entity to retrieve.

Returns:
    netdot.Entity: The Entity with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Entity cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entityrole

> ```get_entityrole(self, id: int) -> netdot.dataclasses.entity.EntityRole```

```
Get info about a EntityRole from Netdot.

Args:
    id (int): The ID of the EntityRole to retrieve.

Returns:
    netdot.EntityRole: The EntityRole with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the EntityRole cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entityroles_by_entity

> ```get_entityroles_by_entity(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of EntityRoles associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular EntityRole.

Returns:
    List[netdot.EntityRole]: The list of EntityRoles associated to the EntityRole.
```

### get_entityroles_by_type

> ```get_entityroles_by_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of EntityRoles associated to a particular EntityType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular EntityRole.

Returns:
    List[netdot.EntityRole]: The list of EntityRoles associated to the EntityRole.
```

### get_entityroles_where

> ```get_entityroles_where(self, **url_params) -> List[netdot.dataclasses.entity.EntityRole]```

```
Get info about EntityRoles from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.EntityRole]: EntityRoles from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entitysite

> ```get_entitysite(self, id: int) -> netdot.dataclasses.entity.EntitySite```

```
Get info about a EntitySite from Netdot.

Args:
    id (int): The ID of the EntitySite to retrieve.

Returns:
    netdot.EntitySite: The EntitySite with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the EntitySite cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entitysites_by_entity

> ```get_entitysites_by_entity(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of EntitySites associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular EntitySite.

Returns:
    List[netdot.EntitySite]: The list of EntitySites associated to the EntitySite.
```

### get_entitysites_by_site

> ```get_entitysites_by_site(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of EntitySites associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular EntitySite.

Returns:
    List[netdot.EntitySite]: The list of EntitySites associated to the EntitySite.
```

### get_entitysites_where

> ```get_entitysites_where(self, **url_params) -> List[netdot.dataclasses.entity.EntitySite]```

```
Get info about EntitySites from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.EntitySite]: EntitySites from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entitytype

> ```get_entitytype(self, id: int) -> netdot.dataclasses.entity.EntityType```

```
Get info about a EntityType from Netdot.

Args:
    id (int): The ID of the EntityType to retrieve.

Returns:
    netdot.EntityType: The EntityType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the EntityType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_entitytypes_where

> ```get_entitytypes_where(self, **url_params) -> List[netdot.dataclasses.entity.EntityType]```

```
Get info about EntityTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.EntityType]: EntityTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_fibertype

> ```get_fibertype(self, id: int) -> netdot.dataclasses.cables.FiberType```

```
Get info about a FiberType from Netdot.

Args:
    id (int): The ID of the FiberType to retrieve.

Returns:
    netdot.FiberType: The FiberType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the FiberType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_fibertypes_where

> ```get_fibertypes_where(self, **url_params) -> List[netdot.dataclasses.cables.FiberType]```

```
Get info about FiberTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.FiberType]: FiberTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_floor

> ```get_floor(self, id: int) -> netdot.dataclasses.site.Floor```

```
Get info about a Floor from Netdot.

Args:
    id (int): The ID of the Floor to retrieve.

Returns:
    netdot.Floor: The Floor with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Floor cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_floors_by_site

> ```get_floors_by_site(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Floors associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Floor.

Returns:
    List[netdot.Floor]: The list of Floors associated to the Floor.
```

### get_floors_where

> ```get_floors_where(self, **url_params) -> List[netdot.dataclasses.site.Floor]```

```
Get info about Floors from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Floor]: Floors from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_fwtable

> ```get_fwtable(self, id: int) -> netdot.dataclasses.fwtable.FWTable```

```
Get info about a FWTable from Netdot.

Args:
    id (int): The ID of the FWTable to retrieve.

Returns:
    netdot.FWTable: The FWTable with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the FWTable cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_fwtableentries_by_fwtable

> ```get_fwtableentries_by_fwtable(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of FWTableEntries associated to a particular FWTable.

Args:
    entity_id (int,NetdotAPIDataclass): The particular FWTableEntry.

Returns:
    List[netdot.FWTableEntry]: The list of FWTableEntries associated to the FWTableEntry.
```

### get_fwtableentries_by_interface

> ```get_fwtableentries_by_interface(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of FWTableEntries associated to a particular Interface.

Args:
    entity_id (int,NetdotAPIDataclass): The particular FWTableEntry.

Returns:
    List[netdot.FWTableEntry]: The list of FWTableEntries associated to the FWTableEntry.
```

### get_fwtableentries_by_physaddr

> ```get_fwtableentries_by_physaddr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of FWTableEntries associated to a particular PhysAddr.

Args:
    entity_id (int,NetdotAPIDataclass): The particular FWTableEntry.

Returns:
    List[netdot.FWTableEntry]: The list of FWTableEntries associated to the FWTableEntry.
```

### get_fwtableentries_where

> ```get_fwtableentries_where(self, **url_params) -> List[netdot.dataclasses.fwtable.FWTableEntry]```

```
Get info about FWTableEntries from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.FWTableEntry]: FWTableEntries from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_fwtableentry

> ```get_fwtableentry(self, id: int) -> netdot.dataclasses.fwtable.FWTableEntry```

```
Get info about a FWTableEntry from Netdot.

Args:
    id (int): The ID of the FWTableEntry to retrieve.

Returns:
    netdot.FWTableEntry: The FWTableEntry with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the FWTableEntry cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_fwtables_by_device

> ```get_fwtables_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of FWTables associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular FWTable.

Returns:
    List[netdot.FWTable]: The list of FWTables associated to the FWTable.
```

### get_fwtables_where

> ```get_fwtables_where(self, **url_params) -> List[netdot.dataclasses.fwtable.FWTable]```

```
Get info about FWTables from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.FWTable]: FWTables from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_groupright

> ```get_groupright(self, id: int) -> netdot.dataclasses.users.GroupRight```

```
Get info about a GroupRight from Netdot.

Args:
    id (int): The ID of the GroupRight to retrieve.

Returns:
    netdot.GroupRight: The GroupRight with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the GroupRight cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_grouprights_by_accessright

> ```get_grouprights_by_accessright(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of GroupRights associated to a particular AccessRight.

Args:
    entity_id (int,NetdotAPIDataclass): The particular GroupRight.

Returns:
    List[netdot.GroupRight]: The list of GroupRights associated to the GroupRight.
```

### get_grouprights_by_contactlist

> ```get_grouprights_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of GroupRights associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular GroupRight.

Returns:
    List[netdot.GroupRight]: The list of GroupRights associated to the GroupRight.
```

### get_grouprights_where

> ```get_grouprights_where(self, **url_params) -> List[netdot.dataclasses.users.GroupRight]```

```
Get info about GroupRights from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.GroupRight]: GroupRights from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_horizontalcable

> ```get_horizontalcable(self, id: int) -> netdot.dataclasses.cables.HorizontalCable```

```
Get info about a HorizontalCable from Netdot.

Args:
    id (int): The ID of the HorizontalCable to retrieve.

Returns:
    netdot.HorizontalCable: The HorizontalCable with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the HorizontalCable cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_horizontalcables_by_closet

> ```get_horizontalcables_by_closet(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of HorizontalCables associated to a particular Closet.

Args:
    entity_id (int,NetdotAPIDataclass): The particular HorizontalCable.

Returns:
    List[netdot.HorizontalCable]: The list of HorizontalCables associated to the HorizontalCable.
```

### get_horizontalcables_by_contactlist

> ```get_horizontalcables_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of HorizontalCables associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular HorizontalCable.

Returns:
    List[netdot.HorizontalCable]: The list of HorizontalCables associated to the HorizontalCable.
```

### get_horizontalcables_by_room

> ```get_horizontalcables_by_room(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of HorizontalCables associated to a particular Room.

Args:
    entity_id (int,NetdotAPIDataclass): The particular HorizontalCable.

Returns:
    List[netdot.HorizontalCable]: The list of HorizontalCables associated to the HorizontalCable.
```

### get_horizontalcables_by_type

> ```get_horizontalcables_by_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of HorizontalCables associated to a particular CableType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular HorizontalCable.

Returns:
    List[netdot.HorizontalCable]: The list of HorizontalCables associated to the HorizontalCable.
```

### get_horizontalcables_where

> ```get_horizontalcables_where(self, **url_params) -> List[netdot.dataclasses.cables.HorizontalCable]```

```
Get info about HorizontalCables from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.HorizontalCable]: HorizontalCables from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_hostaudit

> ```get_hostaudit(self, id: int) -> netdot.dataclasses.misc.HostAudit```

```
Get info about a HostAudit from Netdot.

Args:
    id (int): The ID of the HostAudit to retrieve.

Returns:
    netdot.HostAudit: The HostAudit with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the HostAudit cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_hostaudits_where

> ```get_hostaudits_where(self, **url_params) -> List[netdot.dataclasses.misc.HostAudit]```

```
Get info about HostAudits from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.HostAudit]: HostAudits from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_interface

> ```get_interface(self, id: int) -> netdot.dataclasses.interface.Interface```

```
Get info about a Interface from Netdot.

Args:
    id (int): The ID of the Interface to retrieve.

Returns:
    netdot.Interface: The Interface with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Interface cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_interfaces_by_contactlist

> ```get_interfaces_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Interfaces associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Interface.

Returns:
    List[netdot.Interface]: The list of Interfaces associated to the Interface.
```

### get_interfaces_by_device

> ```get_interfaces_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Interfaces associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Interface.

Returns:
    List[netdot.Interface]: The list of Interfaces associated to the Interface.
```

### get_interfaces_by_monitorstatus

> ```get_interfaces_by_monitorstatus(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Interfaces associated to a particular MonitorStatus.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Interface.

Returns:
    List[netdot.Interface]: The list of Interfaces associated to the Interface.
```

### get_interfaces_by_physaddr

> ```get_interfaces_by_physaddr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Interfaces associated to a particular PhysAddr.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Interface.

Returns:
    List[netdot.Interface]: The list of Interfaces associated to the Interface.
```

### get_interfaces_where

> ```get_interfaces_where(self, **url_params) -> List[netdot.dataclasses.interface.Interface]```

```
Get info about Interfaces from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Interface]: Interfaces from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_interfacevlan

> ```get_interfacevlan(self, id: int) -> netdot.dataclasses.interface.InterfaceVLAN```

```
Get info about a InterfaceVLAN from Netdot.

Args:
    id (int): The ID of the InterfaceVLAN to retrieve.

Returns:
    netdot.InterfaceVLAN: The InterfaceVLAN with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the InterfaceVLAN cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_interfacevlans_by_interface

> ```get_interfacevlans_by_interface(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of InterfaceVLANs associated to a particular Interface.

Args:
    entity_id (int,NetdotAPIDataclass): The particular InterfaceVLAN.

Returns:
    List[netdot.InterfaceVLAN]: The list of InterfaceVLANs associated to the InterfaceVLAN.
```

### get_interfacevlans_by_stp_instance

> ```get_interfacevlans_by_stp_instance(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of InterfaceVLANs associated to a particular STPInstance.

Args:
    entity_id (int,NetdotAPIDataclass): The particular InterfaceVLAN.

Returns:
    List[netdot.InterfaceVLAN]: The list of InterfaceVLANs associated to the InterfaceVLAN.
```

### get_interfacevlans_by_vlan

> ```get_interfacevlans_by_vlan(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of InterfaceVLANs associated to a particular VLAN.

Args:
    entity_id (int,NetdotAPIDataclass): The particular InterfaceVLAN.

Returns:
    List[netdot.InterfaceVLAN]: The list of InterfaceVLANs associated to the InterfaceVLAN.
```

### get_interfacevlans_where

> ```get_interfacevlans_where(self, **url_params) -> List[netdot.dataclasses.interface.InterfaceVLAN]```

```
Get info about InterfaceVLANs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.InterfaceVLAN]: InterfaceVLANs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblock

> ```get_ipblock(self, id: int) -> netdot.dataclasses.ipblock.IPBlock```

```
Get info about a IPBlock from Netdot.

Args:
    id (int): The ID of the IPBlock to retrieve.

Returns:
    netdot.IPBlock: The IPBlock with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the IPBlock cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblock_by_address

> ```get_ipblock_by_address(self, address: str) -> 'netdot.IPBlock'```

```
Get some IP Block from Netdot Address Space.

Args:
    address (str): The IP Address to lookup, e.g. "10.0.0.0"

Returns:
    IPBlock: The IPBlock object that matched the provided address, or None.
```

### get_ipblock_children

> ```get_ipblock_children(self, id: int, **url_params) -> List[ForwardRef('netdot.IPBlock')]```

```
Get the children of some parent IPBlock.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of children IPBlocks).

Args:
    id (int): The ID of the parent IPBlock.

Returns:
    List[netdot.IPBlock]: The children IPBlocks

Raises:
    HTTPError: If no such IPBlocks are found.
```

### get_ipblockattr

> ```get_ipblockattr(self, id: int) -> netdot.dataclasses.ipblock.IPBlockAttr```

```
Get info about a IPBlockAttr from Netdot.

Args:
    id (int): The ID of the IPBlockAttr to retrieve.

Returns:
    netdot.IPBlockAttr: The IPBlockAttr with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the IPBlockAttr cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblockattrname

> ```get_ipblockattrname(self, id: int) -> netdot.dataclasses.ipblock.IPBlockAttrName```

```
Get info about a IPBlockAttrName from Netdot.

Args:
    id (int): The ID of the IPBlockAttrName to retrieve.

Returns:
    netdot.IPBlockAttrName: The IPBlockAttrName with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the IPBlockAttrName cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblockattrnames_where

> ```get_ipblockattrnames_where(self, **url_params) -> List[netdot.dataclasses.ipblock.IPBlockAttrName]```

```
Get info about IPBlockAttrNames from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.IPBlockAttrName]: IPBlockAttrNames from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblockattrs_by_ipblock

> ```get_ipblockattrs_by_ipblock(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlockAttrs associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlockAttr.

Returns:
    List[netdot.IPBlockAttr]: The list of IPBlockAttrs associated to the IPBlockAttr.
```

### get_ipblockattrs_where

> ```get_ipblockattrs_where(self, **url_params) -> List[netdot.dataclasses.ipblock.IPBlockAttr]```

```
Get info about IPBlockAttrs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.IPBlockAttr]: IPBlockAttrs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblocks_by_asn

> ```get_ipblocks_by_asn(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlocks associated to a particular ASN.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlock.

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.
```

### get_ipblocks_by_interface

> ```get_ipblocks_by_interface(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlocks associated to a particular Interface.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlock.

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.
```

### get_ipblocks_by_owner

> ```get_ipblocks_by_owner(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlocks associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlock.

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.
```

### get_ipblocks_by_status

> ```get_ipblocks_by_status(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlocks associated to a particular IPBlockStatus.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlock.

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.
```

### get_ipblocks_by_used_by

> ```get_ipblocks_by_used_by(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlocks associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlock.

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.
```

### get_ipblocks_by_vlan

> ```get_ipblocks_by_vlan(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPBlocks associated to a particular VLAN.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPBlock.

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.
```

### get_ipblocks_where

> ```get_ipblocks_where(self, **url_params) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Get info about IPBlocks from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.IPBlock]: IPBlocks from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblockstatus

> ```get_ipblockstatus(self, id: int) -> netdot.dataclasses.ipblock.IPBlockStatus```

```
Get info about a IPBlockStatus from Netdot.

Args:
    id (int): The ID of the IPBlockStatus to retrieve.

Returns:
    netdot.IPBlockStatus: The IPBlockStatus with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the IPBlockStatus cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipblockstatuses_where

> ```get_ipblockstatuses_where(self, **url_params) -> List[netdot.dataclasses.ipblock.IPBlockStatus]```

```
Get info about IPBlockStatuses from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.IPBlockStatus]: IPBlockStatuses from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipservice

> ```get_ipservice(self, id: int) -> netdot.dataclasses.ipblock.IPService```

```
Get info about a IPService from Netdot.

Args:
    id (int): The ID of the IPService to retrieve.

Returns:
    netdot.IPService: The IPService with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the IPService cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ipservices_by_contactlist

> ```get_ipservices_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPServices associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPService.

Returns:
    List[netdot.IPService]: The list of IPServices associated to the IPService.
```

### get_ipservices_by_ip

> ```get_ipservices_by_ip(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPServices associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPService.

Returns:
    List[netdot.IPService]: The list of IPServices associated to the IPService.
```

### get_ipservices_by_monitorstatus

> ```get_ipservices_by_monitorstatus(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPServices associated to a particular MonitorStatus.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPService.

Returns:
    List[netdot.IPService]: The list of IPServices associated to the IPService.
```

### get_ipservices_by_service

> ```get_ipservices_by_service(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of IPServices associated to a particular Service.

Args:
    entity_id (int,NetdotAPIDataclass): The particular IPService.

Returns:
    List[netdot.IPService]: The list of IPServices associated to the IPService.
```

### get_ipservices_where

> ```get_ipservices_where(self, **url_params) -> List[netdot.dataclasses.ipblock.IPService]```

```
Get info about IPServices from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.IPService]: IPServices from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_maintcontract

> ```get_maintcontract(self, id: int) -> netdot.dataclasses.misc.MaintContract```

```
Get info about a MaintContract from Netdot.

Args:
    id (int): The ID of the MaintContract to retrieve.

Returns:
    netdot.MaintContract: The MaintContract with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the MaintContract cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_maintcontracts_by_provider

> ```get_maintcontracts_by_provider(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of MaintContracts associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular MaintContract.

Returns:
    List[netdot.MaintContract]: The list of MaintContracts associated to the MaintContract.
```

### get_maintcontracts_where

> ```get_maintcontracts_where(self, **url_params) -> List[netdot.dataclasses.misc.MaintContract]```

```
Get info about MaintContracts from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.MaintContract]: MaintContracts from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_monitorstatus

> ```get_monitorstatus(self, id: int) -> netdot.dataclasses.misc.MonitorStatus```

```
Get info about a MonitorStatus from Netdot.

Args:
    id (int): The ID of the MonitorStatus to retrieve.

Returns:
    netdot.MonitorStatus: The MonitorStatus with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the MonitorStatus cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_monitorstatuses_where

> ```get_monitorstatuses_where(self, **url_params) -> List[netdot.dataclasses.misc.MonitorStatus]```

```
Get info about MonitorStatuses from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.MonitorStatus]: MonitorStatuses from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_oui

> ```get_oui(self, id: int) -> netdot.dataclasses.device.OUI```

```
Get info about a OUI from Netdot.

Args:
    id (int): The ID of the OUI to retrieve.

Returns:
    netdot.OUI: The OUI with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the OUI cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_ouis_where

> ```get_ouis_where(self, **url_params) -> List[netdot.dataclasses.device.OUI]```

```
Get info about OUIs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.OUI]: OUIs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_person

> ```get_person(self, id: int) -> netdot.dataclasses.users.Person```

```
Get info about a Person from Netdot.

Args:
    id (int): The ID of the Person to retrieve.

Returns:
    netdot.Person: The Person with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Person cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_persons_by_entity

> ```get_persons_by_entity(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Persons associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Person.

Returns:
    List[netdot.Person]: The list of Persons associated to the Person.
```

### get_persons_by_location

> ```get_persons_by_location(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Persons associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Person.

Returns:
    List[netdot.Person]: The list of Persons associated to the Person.
```

### get_persons_by_room

> ```get_persons_by_room(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Persons associated to a particular Room.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Person.

Returns:
    List[netdot.Person]: The list of Persons associated to the Person.
```

### get_persons_by_user_type

> ```get_persons_by_user_type(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Persons associated to a particular UserType.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Person.

Returns:
    List[netdot.Person]: The list of Persons associated to the Person.
```

### get_persons_where

> ```get_persons_where(self, **url_params) -> List[netdot.dataclasses.users.Person]```

```
Get info about Persons from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Person]: Persons from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_physaddr

> ```get_physaddr(self, id: int) -> netdot.dataclasses.physaddr.PhysAddr```

```
Get info about a PhysAddr from Netdot.

Args:
    id (int): The ID of the PhysAddr to retrieve.

Returns:
    netdot.PhysAddr: The PhysAddr with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the PhysAddr cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_physaddr_by_MACAddress

> ```get_physaddr_by_MACAddress(self, address: str) -> 'netdot.PhysAddr'```

```
Get some Physical Address from Netdot Address Space.

Args:
    address (str): The MAC Address to lookup, e.g. "00:00:00:00:00:00"

Returns:
    netdot.PhysAddr: The Physical Address object that matched the provided address, or None.
```

### get_physaddrattr

> ```get_physaddrattr(self, id: int) -> netdot.dataclasses.physaddr.PhysAddrAttr```

```
Get info about a PhysAddrAttr from Netdot.

Args:
    id (int): The ID of the PhysAddrAttr to retrieve.

Returns:
    netdot.PhysAddrAttr: The PhysAddrAttr with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the PhysAddrAttr cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_physaddrattrname

> ```get_physaddrattrname(self, id: int) -> netdot.dataclasses.physaddr.PhysAddrAttrName```

```
Get info about a PhysAddrAttrName from Netdot.

Args:
    id (int): The ID of the PhysAddrAttrName to retrieve.

Returns:
    netdot.PhysAddrAttrName: The PhysAddrAttrName with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the PhysAddrAttrName cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_physaddrattrnames_where

> ```get_physaddrattrnames_where(self, **url_params) -> List[netdot.dataclasses.physaddr.PhysAddrAttrName]```

```
Get info about PhysAddrAttrNames from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.PhysAddrAttrName]: PhysAddrAttrNames from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_physaddrattrs_where

> ```get_physaddrattrs_where(self, **url_params) -> List[netdot.dataclasses.physaddr.PhysAddrAttr]```

```
Get info about PhysAddrAttrs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.PhysAddrAttr]: PhysAddrAttrs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_physaddrs_where

> ```get_physaddrs_where(self, **url_params) -> List[netdot.dataclasses.physaddr.PhysAddr]```

```
Get info about PhysAddrs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.PhysAddr]: PhysAddrs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_product

> ```get_product(self, id: int) -> netdot.dataclasses.products.Product```

```
Get info about a Product from Netdot.

Args:
    id (int): The ID of the Product to retrieve.

Returns:
    netdot.Product: The Product with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Product cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_products_where

> ```get_products_where(self, **url_params) -> List[netdot.dataclasses.products.Product]```

```
Get info about Products from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Product]: Products from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_producttype

> ```get_producttype(self, id: int) -> netdot.dataclasses.products.ProductType```

```
Get info about a ProductType from Netdot.

Args:
    id (int): The ID of the ProductType to retrieve.

Returns:
    netdot.ProductType: The ProductType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the ProductType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_producttypes_where

> ```get_producttypes_where(self, **url_params) -> List[netdot.dataclasses.products.ProductType]```

```
Get info about ProductTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.ProductType]: ProductTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_room

> ```get_room(self, id: int) -> netdot.dataclasses.site.Room```

```
Get info about a Room from Netdot.

Args:
    id (int): The ID of the Room to retrieve.

Returns:
    netdot.Room: The Room with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Room cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rooms_by_floor

> ```get_rooms_by_floor(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Rooms associated to a particular Floor.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Room.

Returns:
    List[netdot.Room]: The list of Rooms associated to the Room.
```

### get_rooms_where

> ```get_rooms_where(self, **url_params) -> List[netdot.dataclasses.site.Room]```

```
Get info about Rooms from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Room]: Rooms from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rr

> ```get_rr(self, id: int) -> netdot.dataclasses.dns.RR```

```
Get info about a RR from Netdot.

Args:
    id (int): The ID of the RR to retrieve.

Returns:
    netdot.RR: The RR with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RR cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rr_by_address

> ```get_rr_by_address(self, address: str) -> 'netdot.RR'```

```
Get a Resource Record from Netdot Address Space, by IP Address.

Args:
    address (str): The IP Address to lookup, e.g. "10.0.0.123"

Returns:
    netdot.RR: The Resource Record that matched the provided address.

Raises:
    HTTPError: If the Resource Record cannot be found.
```

### get_rr_by_zone

> ```get_rr_by_zone(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RR associated to a particular Zone.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RR.

Returns:
    List[netdot.RR]: The list of RR associated to the RR.
```

### get_rr_where

> ```get_rr_where(self, **url_params) -> List[netdot.dataclasses.dns.RR]```

```
Get info about RR from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RR]: RR from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rraddr

> ```get_rraddr(self, id: int) -> netdot.dataclasses.dns.RRADDR```

```
Get info about a RRADDR from Netdot.

Args:
    id (int): The ID of the RRADDR to retrieve.

Returns:
    netdot.RRADDR: The RRADDR with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRADDR cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rraddr_by_ipblock

> ```get_rraddr_by_ipblock(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRADDR associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRADDR.

Returns:
    List[netdot.RRADDR]: The list of RRADDR associated to the RRADDR.
```

### get_rraddr_by_rr

> ```get_rraddr_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRADDR associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRADDR.

Returns:
    List[netdot.RRADDR]: The list of RRADDR associated to the RRADDR.
```

### get_rraddr_where

> ```get_rraddr_where(self, **url_params) -> List[netdot.dataclasses.dns.RRADDR]```

```
Get info about RRADDR from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRADDR]: RRADDR from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrcname

> ```get_rrcname(self, id: int) -> netdot.dataclasses.dns.RRCNAME```

```
Get info about a RRCNAME from Netdot.

Args:
    id (int): The ID of the RRCNAME to retrieve.

Returns:
    netdot.RRCNAME: The RRCNAME with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRCNAME cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrcname_by_rr

> ```get_rrcname_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRCNAME associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRCNAME.

Returns:
    List[netdot.RRCNAME]: The list of RRCNAME associated to the RRCNAME.
```

### get_rrcname_where

> ```get_rrcname_where(self, **url_params) -> List[netdot.dataclasses.dns.RRCNAME]```

```
Get info about RRCNAME from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRCNAME]: RRCNAME from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrds

> ```get_rrds(self, id: int) -> netdot.dataclasses.dns.RRDS```

```
Get info about a RRDS from Netdot.

Args:
    id (int): The ID of the RRDS to retrieve.

Returns:
    netdot.RRDS: The RRDS with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRDS cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrds_by_rr

> ```get_rrds_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRDS associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRDS.

Returns:
    List[netdot.RRDS]: The list of RRDS associated to the RRDS.
```

### get_rrds_where

> ```get_rrds_where(self, **url_params) -> List[netdot.dataclasses.dns.RRDS]```

```
Get info about RRDS from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRDS]: RRDS from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrhinfo

> ```get_rrhinfo(self, id: int) -> netdot.dataclasses.dns.RRHINFO```

```
Get info about a RRHINFO from Netdot.

Args:
    id (int): The ID of the RRHINFO to retrieve.

Returns:
    netdot.RRHINFO: The RRHINFO with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRHINFO cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrhinfo_by_rr

> ```get_rrhinfo_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRHINFO associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRHINFO.

Returns:
    List[netdot.RRHINFO]: The list of RRHINFO associated to the RRHINFO.
```

### get_rrhinfo_where

> ```get_rrhinfo_where(self, **url_params) -> List[netdot.dataclasses.dns.RRHINFO]```

```
Get info about RRHINFO from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRHINFO]: RRHINFO from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrloc

> ```get_rrloc(self, id: int) -> netdot.dataclasses.dns.RRLOC```

```
Get info about a RRLOC from Netdot.

Args:
    id (int): The ID of the RRLOC to retrieve.

Returns:
    netdot.RRLOC: The RRLOC with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRLOC cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrloc_by_rr

> ```get_rrloc_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRLOC associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRLOC.

Returns:
    List[netdot.RRLOC]: The list of RRLOC associated to the RRLOC.
```

### get_rrloc_where

> ```get_rrloc_where(self, **url_params) -> List[netdot.dataclasses.dns.RRLOC]```

```
Get info about RRLOC from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRLOC]: RRLOC from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrmx

> ```get_rrmx(self, id: int) -> netdot.dataclasses.dns.RRMX```

```
Get info about a RRMX from Netdot.

Args:
    id (int): The ID of the RRMX to retrieve.

Returns:
    netdot.RRMX: The RRMX with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRMX cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrmx_by_rr

> ```get_rrmx_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRMX associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRMX.

Returns:
    List[netdot.RRMX]: The list of RRMX associated to the RRMX.
```

### get_rrmx_where

> ```get_rrmx_where(self, **url_params) -> List[netdot.dataclasses.dns.RRMX]```

```
Get info about RRMX from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRMX]: RRMX from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrnaptr

> ```get_rrnaptr(self, id: int) -> netdot.dataclasses.dns.RRNAPTR```

```
Get info about a RRNAPTR from Netdot.

Args:
    id (int): The ID of the RRNAPTR to retrieve.

Returns:
    netdot.RRNAPTR: The RRNAPTR with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRNAPTR cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrnaptr_by_rr

> ```get_rrnaptr_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRNAPTR associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRNAPTR.

Returns:
    List[netdot.RRNAPTR]: The list of RRNAPTR associated to the RRNAPTR.
```

### get_rrnaptr_where

> ```get_rrnaptr_where(self, **url_params) -> List[netdot.dataclasses.dns.RRNAPTR]```

```
Get info about RRNAPTR from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRNAPTR]: RRNAPTR from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrns

> ```get_rrns(self, id: int) -> netdot.dataclasses.dns.RRNS```

```
Get info about a RRNS from Netdot.

Args:
    id (int): The ID of the RRNS to retrieve.

Returns:
    netdot.RRNS: The RRNS with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRNS cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrns_by_rr

> ```get_rrns_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRNS associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRNS.

Returns:
    List[netdot.RRNS]: The list of RRNS associated to the RRNS.
```

### get_rrns_where

> ```get_rrns_where(self, **url_params) -> List[netdot.dataclasses.dns.RRNS]```

```
Get info about RRNS from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRNS]: RRNS from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrptr

> ```get_rrptr(self, id: int) -> netdot.dataclasses.dns.RRPTR```

```
Get info about a RRPTR from Netdot.

Args:
    id (int): The ID of the RRPTR to retrieve.

Returns:
    netdot.RRPTR: The RRPTR with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRPTR cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrptr_by_ipblock

> ```get_rrptr_by_ipblock(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRPTR associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRPTR.

Returns:
    List[netdot.RRPTR]: The list of RRPTR associated to the RRPTR.
```

### get_rrptr_by_rr

> ```get_rrptr_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRPTR associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRPTR.

Returns:
    List[netdot.RRPTR]: The list of RRPTR associated to the RRPTR.
```

### get_rrptr_where

> ```get_rrptr_where(self, **url_params) -> List[netdot.dataclasses.dns.RRPTR]```

```
Get info about RRPTR from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRPTR]: RRPTR from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrsrv

> ```get_rrsrv(self, id: int) -> netdot.dataclasses.dns.RRSRV```

```
Get info about a RRSRV from Netdot.

Args:
    id (int): The ID of the RRSRV to retrieve.

Returns:
    netdot.RRSRV: The RRSRV with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRSRV cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrsrv_by_rr

> ```get_rrsrv_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRSRV associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRSRV.

Returns:
    List[netdot.RRSRV]: The list of RRSRV associated to the RRSRV.
```

### get_rrsrv_where

> ```get_rrsrv_where(self, **url_params) -> List[netdot.dataclasses.dns.RRSRV]```

```
Get info about RRSRV from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRSRV]: RRSRV from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrtxt

> ```get_rrtxt(self, id: int) -> netdot.dataclasses.dns.RRTXT```

```
Get info about a RRTXT from Netdot.

Args:
    id (int): The ID of the RRTXT to retrieve.

Returns:
    netdot.RRTXT: The RRTXT with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the RRTXT cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_rrtxt_by_rr

> ```get_rrtxt_by_rr(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of RRTXT associated to a particular RR.

Args:
    entity_id (int,NetdotAPIDataclass): The particular RRTXT.

Returns:
    List[netdot.RRTXT]: The list of RRTXT associated to the RRTXT.
```

### get_rrtxt_where

> ```get_rrtxt_where(self, **url_params) -> List[netdot.dataclasses.dns.RRTXT]```

```
Get info about RRTXT from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.RRTXT]: RRTXT from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_savedqueries

> ```get_savedqueries(self, id: int) -> netdot.dataclasses.misc.SavedQueries```

```
Get info about a SavedQueries from Netdot.

Args:
    id (int): The ID of the SavedQueries to retrieve.

Returns:
    netdot.SavedQueries: The SavedQueries with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the SavedQueries cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_savedqueries_where

> ```get_savedqueries_where(self, **url_params) -> List[netdot.dataclasses.misc.SavedQueries]```

```
Get info about SavedQueries from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.SavedQueries]: SavedQueries from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_schemainfo

> ```get_schemainfo(self, id: int) -> netdot.dataclasses.misc.SchemaInfo```

```
Get info about a SchemaInfo from Netdot.

Args:
    id (int): The ID of the SchemaInfo to retrieve.

Returns:
    netdot.SchemaInfo: The SchemaInfo with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the SchemaInfo cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_schemainfo_where

> ```get_schemainfo_where(self, **url_params) -> List[netdot.dataclasses.misc.SchemaInfo]```

```
Get info about SchemaInfo from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.SchemaInfo]: SchemaInfo from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_service

> ```get_service(self, id: int) -> netdot.dataclasses.ipblock.Service```

```
Get info about a Service from Netdot.

Args:
    id (int): The ID of the Service to retrieve.

Returns:
    netdot.Service: The Service with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Service cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_services_where

> ```get_services_where(self, **url_params) -> List[netdot.dataclasses.ipblock.Service]```

```
Get info about Services from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Service]: Services from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_site

> ```get_site(self, id: int) -> netdot.dataclasses.site.Site```

```
Get info about a Site from Netdot.

Args:
    id (int): The ID of the Site to retrieve.

Returns:
    netdot.Site: The Site with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Site cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_sitelink

> ```get_sitelink(self, id: int) -> netdot.dataclasses.site.SiteLink```

```
Get info about a SiteLink from Netdot.

Args:
    id (int): The ID of the SiteLink to retrieve.

Returns:
    netdot.SiteLink: The SiteLink with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the SiteLink cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_sitelinks_by_entity

> ```get_sitelinks_by_entity(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SiteLinks associated to a particular Entity.

Args:
    entity_id (int,NetdotAPIDataclass): The particular SiteLink.

Returns:
    List[netdot.SiteLink]: The list of SiteLinks associated to the SiteLink.
```

### get_sitelinks_by_farend

> ```get_sitelinks_by_farend(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SiteLinks associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular SiteLink.

Returns:
    List[netdot.SiteLink]: The list of SiteLinks associated to the SiteLink.
```

### get_sitelinks_by_nearend

> ```get_sitelinks_by_nearend(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SiteLinks associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular SiteLink.

Returns:
    List[netdot.SiteLink]: The list of SiteLinks associated to the SiteLink.
```

### get_sitelinks_where

> ```get_sitelinks_where(self, **url_params) -> List[netdot.dataclasses.site.SiteLink]```

```
Get info about SiteLinks from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.SiteLink]: SiteLinks from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_sites_by_availability

> ```get_sites_by_availability(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Sites associated to a particular Availability.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Site.

Returns:
    List[netdot.Site]: The list of Sites associated to the Site.
```

### get_sites_by_contactlist

> ```get_sites_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Sites associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Site.

Returns:
    List[netdot.Site]: The list of Sites associated to the Site.
```

### get_sites_where

> ```get_sites_where(self, **url_params) -> List[netdot.dataclasses.site.Site]```

```
Get info about Sites from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Site]: Sites from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_sitesubnet

> ```get_sitesubnet(self, id: int) -> netdot.dataclasses.site.SiteSubnet```

```
Get info about a SiteSubnet from Netdot.

Args:
    id (int): The ID of the SiteSubnet to retrieve.

Returns:
    netdot.SiteSubnet: The SiteSubnet with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the SiteSubnet cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_sitesubnets_by_site

> ```get_sitesubnets_by_site(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SiteSubnets associated to a particular Site.

Args:
    entity_id (int,NetdotAPIDataclass): The particular SiteSubnet.

Returns:
    List[netdot.SiteSubnet]: The list of SiteSubnets associated to the SiteSubnet.
```

### get_sitesubnets_by_subnet

> ```get_sitesubnets_by_subnet(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SiteSubnets associated to a particular IPBlock.

Args:
    entity_id (int,NetdotAPIDataclass): The particular SiteSubnet.

Returns:
    List[netdot.SiteSubnet]: The list of SiteSubnets associated to the SiteSubnet.
```

### get_sitesubnets_where

> ```get_sitesubnets_where(self, **url_params) -> List[netdot.dataclasses.site.SiteSubnet]```

```
Get info about SiteSubnets from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.SiteSubnet]: SiteSubnets from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_splice

> ```get_splice(self, id: int) -> netdot.dataclasses.cables.Splice```

```
Get info about a Splice from Netdot.

Args:
    id (int): The ID of the Splice to retrieve.

Returns:
    netdot.Splice: The Splice with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Splice cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_splices_by_strand1

> ```get_splices_by_strand1(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Splices associated to a particular CableStrand.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Splice.

Returns:
    List[netdot.Splice]: The list of Splices associated to the Splice.
```

### get_splices_by_strand2

> ```get_splices_by_strand2(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Splices associated to a particular CableStrand.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Splice.

Returns:
    List[netdot.Splice]: The list of Splices associated to the Splice.
```

### get_splices_where

> ```get_splices_where(self, **url_params) -> List[netdot.dataclasses.cables.Splice]```

```
Get info about Splices from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Splice]: Splices from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_stpinstance

> ```get_stpinstance(self, id: int) -> netdot.dataclasses.device.STPInstance```

```
Get info about a STPInstance from Netdot.

Args:
    id (int): The ID of the STPInstance to retrieve.

Returns:
    netdot.STPInstance: The STPInstance with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the STPInstance cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_stpinstances_by_device

> ```get_stpinstances_by_device(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of STPInstances associated to a particular Device.

Args:
    entity_id (int,NetdotAPIDataclass): The particular STPInstance.

Returns:
    List[netdot.STPInstance]: The list of STPInstances associated to the STPInstance.
```

### get_stpinstances_where

> ```get_stpinstances_where(self, **url_params) -> List[netdot.dataclasses.device.STPInstance]```

```
Get info about STPInstances from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.STPInstance]: STPInstances from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_strandstatus

> ```get_strandstatus(self, id: int) -> netdot.dataclasses.cables.StrandStatus```

```
Get info about a StrandStatus from Netdot.

Args:
    id (int): The ID of the StrandStatus to retrieve.

Returns:
    netdot.StrandStatus: The StrandStatus with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the StrandStatus cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_strandstatuses_where

> ```get_strandstatuses_where(self, **url_params) -> List[netdot.dataclasses.cables.StrandStatus]```

```
Get info about StrandStatuses from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.StrandStatus]: StrandStatuses from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_subnetzone

> ```get_subnetzone(self, id: int) -> netdot.dataclasses.ipblock.SubnetZone```

```
Get info about a SubnetZone from Netdot.

Args:
    id (int): The ID of the SubnetZone to retrieve.

Returns:
    netdot.SubnetZone: The SubnetZone with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the SubnetZone cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_subnetzones_by_zone

> ```get_subnetzones_by_zone(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SubnetZones associated to a particular Zone.

Args:
    entity_id (int,NetdotAPIDataclass): The particular SubnetZone.

Returns:
    List[netdot.SubnetZone]: The list of SubnetZones associated to the SubnetZone.
```

### get_subnetzones_where

> ```get_subnetzones_where(self, **url_params) -> List[netdot.dataclasses.ipblock.SubnetZone]```

```
Get info about SubnetZones from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.SubnetZone]: SubnetZones from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_userright

> ```get_userright(self, id: int) -> netdot.dataclasses.users.UserRight```

```
Get info about a UserRight from Netdot.

Args:
    id (int): The ID of the UserRight to retrieve.

Returns:
    netdot.UserRight: The UserRight with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the UserRight cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_userrights_by_accessright

> ```get_userrights_by_accessright(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of UserRights associated to a particular AccessRight.

Args:
    entity_id (int,NetdotAPIDataclass): The particular UserRight.

Returns:
    List[netdot.UserRight]: The list of UserRights associated to the UserRight.
```

### get_userrights_by_person

> ```get_userrights_by_person(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of UserRights associated to a particular Person.

Args:
    entity_id (int,NetdotAPIDataclass): The particular UserRight.

Returns:
    List[netdot.UserRight]: The list of UserRights associated to the UserRight.
```

### get_userrights_where

> ```get_userrights_where(self, **url_params) -> List[netdot.dataclasses.users.UserRight]```

```
Get info about UserRights from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.UserRight]: UserRights from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_usertype

> ```get_usertype(self, id: int) -> netdot.dataclasses.users.UserType```

```
Get info about a UserType from Netdot.

Args:
    id (int): The ID of the UserType to retrieve.

Returns:
    netdot.UserType: The UserType with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the UserType cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_usertypes_where

> ```get_usertypes_where(self, **url_params) -> List[netdot.dataclasses.users.UserType]```

```
Get info about UserTypes from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.UserType]: UserTypes from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_vlan

> ```get_vlan(self, id: int) -> netdot.dataclasses.vlan.VLAN```

```
Get info about a VLAN from Netdot.

Args:
    id (int): The ID of the VLAN to retrieve.

Returns:
    netdot.VLAN: The VLAN with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the VLAN cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_vlangroup

> ```get_vlangroup(self, id: int) -> netdot.dataclasses.vlan.VLANGroup```

```
Get info about a VLANGroup from Netdot.

Args:
    id (int): The ID of the VLANGroup to retrieve.

Returns:
    netdot.VLANGroup: The VLANGroup with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the VLANGroup cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_vlangroups_where

> ```get_vlangroups_where(self, **url_params) -> List[netdot.dataclasses.vlan.VLANGroup]```

```
Get info about VLANGroups from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.VLANGroup]: VLANGroups from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_vlans_by_vlangroup

> ```get_vlans_by_vlangroup(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of VLANs associated to a particular VLANGroup.

Args:
    entity_id (int,NetdotAPIDataclass): The particular VLAN.

Returns:
    List[netdot.VLAN]: The list of VLANs associated to the VLAN.
```

### get_vlans_where

> ```get_vlans_where(self, **url_params) -> List[netdot.dataclasses.vlan.VLAN]```

```
Get info about VLANs from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.VLAN]: VLANs from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_zone

> ```get_zone(self, id: int) -> netdot.dataclasses.dns.Zone```

```
Get info about a Zone from Netdot.

Args:
    id (int): The ID of the Zone to retrieve.

Returns:
    netdot.Zone: The Zone with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the Zone cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_zonealias

> ```get_zonealias(self, id: int) -> netdot.dataclasses.dns.ZoneAlias```

```
Get info about a ZoneAlias from Netdot.

Args:
    id (int): The ID of the ZoneAlias to retrieve.

Returns:
    netdot.ZoneAlias: The ZoneAlias with `id`. (raises ValueError if `id` is not found)

Raises:
    ValueError: if the ZoneAlias cannot be retrieved for some reason.
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_zonealiases_by_zone

> ```get_zonealiases_by_zone(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of ZoneAliases associated to a particular Zone.

Args:
    entity_id (int,NetdotAPIDataclass): The particular ZoneAlias.

Returns:
    List[netdot.ZoneAlias]: The list of ZoneAliases associated to the ZoneAlias.
```

### get_zonealiases_where

> ```get_zonealiases_where(self, **url_params) -> List[netdot.dataclasses.dns.ZoneAlias]```

```
Get info about ZoneAliases from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.ZoneAlias]: ZoneAliases from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### get_zones_by_contactlist

> ```get_zones_by_contactlist(self, entity_id: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Zones associated to a particular ContactList.

Args:
    entity_id (int,NetdotAPIDataclass): The particular Zone.

Returns:
    List[netdot.Zone]: The list of Zones associated to the Zone.
```

### get_zones_where

> ```get_zones_where(self, **url_params) -> List[netdot.dataclasses.dns.Zone]```

```
Get info about Zones from Netdot.

Args:
    **kwargs: URL Parameters - Any keyword args will be used as URL Parameters. Ex. (id=1) will be translated to `?id=1` in the URL.

Returns:
    List[netdot.Zone]: Zones from Netdot (that match provided URL Parameters).

Raises:
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found).
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).
```

### save_changes

> ```save_changes(self, confirm=True)```

```
_summary_

Args:
    confirm (bool, optional): _description_. Defaults to True.

Raises:
    RuntimeError: _description_
```

### show_changes

> ```show_changes(self, terse=True)```

```
Show a 'dry run' of all changes to be made (but don't actually make the changes).

> See :func:`netdot.UnitOfWork.show_dry_run` for more details.
```

### show_changes_as_tables

> ```show_changes_as_tables(self, terse=True)```

```
Print ASCII table(s) representing all of the changes to be made (grouped into tables based on Netdot Data Types).

> See :func:`netdot.UnitOfWork.show_changes_as_tables` for more details.
```

### update

> ```update(self, new_data: netdot.dataclasses.base.NetdotAPIDataclass) -> netdot.dataclasses.base.NetdotAPIDataclass```

```
Update an existing object in Netdot.

Args:
    id (int): The ID of the object to update.
    new_data (netdot.NetdotAPIDataclass): The new data to use when updating the object.

Returns:
    netdot.NetdotAPIDataclass: The object provided by Netdot in response to this HTTP POST.

Raises:
    HTTPError: if the object cannot be updated for some reason.
```

### update_by_id

> ```update_by_id(self, id: int, new_data: netdot.dataclasses.base.NetdotAPIDataclass) -> netdot.dataclasses.base.NetdotAPIDataclass```

```
Update an existing object in Netdot.

Args:
    id (int): The ID of the object to update.
    new_data (netdot.NetdotAPIDataclass): The new data to use when updating the object.

Returns:
    netdot.NetdotAPIDataclass: The object provided by Netdot in response to this HTTP POST.

Raises:
    HTTPError: if the object cannot be updated for some reason.
```

## class `netdot.Asset`

- product_id_xlink (int)
- physaddr_xlink (int)
- maint_contract_xlink (int)
- custom_serial (str)
- description (str)
- info (str)
- inventory_number (str)
- maint_from (DateTime)
- maint_until (DateTime)
- date_purchased (DateTime)
- po_number (str)
- reserved_for (str)
- serial_number (str)
### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this Asset.

Returns:
    netdot.Device: The created Device.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this Asset.

Returns:
    List[netdot.Device]: All Devices related to this Asset.
```

### load_maint_contract

> ```load_maint_contract(self) -> netdot.dataclasses.misc.MaintContract```

```
Load the MaintContract associated to this Asset.

Returns:
    netdot.MaintContract: The full MaintContract object that is related to this Asset.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the PhysAddr associated to this Asset.

Returns:
    netdot.PhysAddr: The full PhysAddr object that is related to this Asset.
```

### load_product_id

> ```load_product_id(self) -> netdot.dataclasses.products.Product```

```
Load the Product associated to this Asset.

Returns:
    netdot.Product: The full Product object that is related to this Asset.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.BGPPeering`

- bgppeeraddr (str)
- bgppeerid (str)
- device_xlink (int)
- entity_xlink (int)
- monitored (bool) (Default: False)
- authkey (str)
- info (str)
- max_v4_prefixes (int)
- max_v6_prefixes (int)
- contactlist_xlink (int)
- last_changed (DateTime)
- peer_group (str)
- state (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this BGPPeering.

Returns:
    netdot.ContactList: The full ContactList object that is related to this BGPPeering.
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this BGPPeering.

Returns:
    netdot.Device: The full Device object that is related to this BGPPeering.
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this BGPPeering.

Returns:
    netdot.Entity: The full Entity object that is related to this BGPPeering.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.ASN`

- description (str)
- info (str)
- number (int)
- rir (str)
### add_ipblock

> ```add_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this ASN.

Returns:
    netdot.IPBlock: The created IPBlock.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_ipblocks

> ```load_ipblocks(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the IPBlocks associated to this ASN.

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this ASN.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.HorizontalCable`

- account (str)
- closet_xlink (int)
- contactlist_xlink (int)
- datetested (DateTime)
- faceplateid (str)
- info (str)
- installdate (DateTime)
- jackid (str)
- length (str)
- room_xlink (int)
- testpassed (bool) (Default: False)
- type_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_closet

> ```load_closet(self) -> netdot.dataclasses.site.Closet```

```
Load the Closet associated to this HorizontalCable.

Returns:
    netdot.Closet: The full Closet object that is related to this HorizontalCable.
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this HorizontalCable.

Returns:
    netdot.ContactList: The full ContactList object that is related to this HorizontalCable.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the Room associated to this HorizontalCable.

Returns:
    netdot.Room: The full Room object that is related to this HorizontalCable.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.cables.CableType```

```
Load the CableType associated to this HorizontalCable.

Returns:
    netdot.CableType: The full CableType object that is related to this HorizontalCable.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.BackboneCable`

- end_closet_xlink (int)
- info (str)
- installdate (DateTime)
- length (str)
- name (str)
- owner_xlink (int)
- start_closet_xlink (int)
- type_xlink (int)
### add_cablestrand

> ```add_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrand```

```
Add a CableStrand to this BackboneCable.

Returns:
    netdot.CableStrand: The created CableStrand.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_cablestrands

> ```load_cablestrands(self) -> List[netdot.dataclasses.cables.CableStrand]```

```
Load the CableStrands associated to this BackboneCable.

Returns:
    List[netdot.CableStrand]: All CableStrands related to this BackboneCable.
```

### load_end_closet

> ```load_end_closet(self) -> netdot.dataclasses.site.Closet```

```
Load the Closet associated to this BackboneCable.

Returns:
    netdot.Closet: The full Closet object that is related to this BackboneCable.
```

### load_owner

> ```load_owner(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this BackboneCable.

Returns:
    netdot.Entity: The full Entity object that is related to this BackboneCable.
```

### load_start_closet

> ```load_start_closet(self) -> netdot.dataclasses.site.Closet```

```
Load the Closet associated to this BackboneCable.

Returns:
    netdot.Closet: The full Closet object that is related to this BackboneCable.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.cables.CableType```

```
Load the CableType associated to this BackboneCable.

Returns:
    netdot.CableType: The full CableType object that is related to this BackboneCable.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Circuit`

- cid (str)
- info (str)
- installdate (DateTime)
- linkid_xlink (int)
- speed (str)
- status_xlink (int)
- type_xlink (int)
- vendor_xlink (int)
- datetested (DateTime)
- loss (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_linkid

> ```load_linkid(self) -> netdot.dataclasses.site.SiteLink```

```
Load the SiteLink associated to this Circuit.

Returns:
    netdot.SiteLink: The full SiteLink object that is related to this Circuit.
```

### load_status

> ```load_status(self) -> netdot.dataclasses.cables.CircuitStatus```

```
Load the CircuitStatus associated to this Circuit.

Returns:
    netdot.CircuitStatus: The full CircuitStatus object that is related to this Circuit.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.cables.CircuitType```

```
Load the CircuitType associated to this Circuit.

Returns:
    netdot.CircuitType: The full CircuitType object that is related to this Circuit.
```

### load_vendor

> ```load_vendor(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this Circuit.

Returns:
    netdot.Entity: The full Entity object that is related to this Circuit.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.StrandStatus`

- info (str)
- name (str)
### add_cablestrand

> ```add_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrand```

```
Add a CableStrand to this StrandStatus.

Returns:
    netdot.CableStrand: The created CableStrand.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_cablestrands

> ```load_cablestrands(self) -> List[netdot.dataclasses.cables.CableStrand]```

```
Load the CableStrands associated to this StrandStatus.

Returns:
    List[netdot.CableStrand]: All CableStrands related to this StrandStatus.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.CableStrand`

- cable_xlink (int)
- circuit_id_xlink (int)
- description (str)
- fiber_type_xlink (int)
- info (str)
- name (str)
- number (int)
- status_xlink (int)
### add_splice_as_strand1

> ```add_splice_as_strand1(self, data: netdot.dataclasses.cables.Splice) -> netdot.dataclasses.cables.Splice```

```
Add a Splice to this CableStrand.

Returns:
    netdot.Splice: The created Splice.
```

### add_splice_as_strand2

> ```add_splice_as_strand2(self, data: netdot.dataclasses.cables.Splice) -> netdot.dataclasses.cables.Splice```

```
Add a Splice to this CableStrand.

Returns:
    netdot.Splice: The created Splice.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_cable

> ```load_cable(self) -> netdot.dataclasses.cables.BackboneCable```

```
Load the BackboneCable associated to this CableStrand.

Returns:
    netdot.BackboneCable: The full BackboneCable object that is related to this CableStrand.
```

### load_fiber_type

> ```load_fiber_type(self) -> netdot.dataclasses.cables.FiberType```

```
Load the FiberType associated to this CableStrand.

Returns:
    netdot.FiberType: The full FiberType object that is related to this CableStrand.
```

### load_status

> ```load_status(self) -> netdot.dataclasses.cables.StrandStatus```

```
Load the StrandStatus associated to this CableStrand.

Returns:
    netdot.StrandStatus: The full StrandStatus object that is related to this CableStrand.
```

### load_strand1_splices

> ```load_strand1_splices(self) -> List[netdot.dataclasses.cables.Splice]```

```
Load the Splices associated to this CableStrand.

Returns:
    List[netdot.Splice]: All Splices related to this CableStrand.
```

### load_strand2_splices

> ```load_strand2_splices(self) -> List[netdot.dataclasses.cables.Splice]```

```
Load the Splices associated to this CableStrand.

Returns:
    List[netdot.Splice]: All Splices related to this CableStrand.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Splice`

- info (str)
- strand1_xlink (int)
- strand2_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_strand1

> ```load_strand1(self) -> netdot.dataclasses.cables.CableStrand```

```
Load the CableStrand associated to this Splice.

Returns:
    netdot.CableStrand: The full CableStrand object that is related to this Splice.
```

### load_strand2

> ```load_strand2(self) -> netdot.dataclasses.cables.CableStrand```

```
Load the CableStrand associated to this Splice.

Returns:
    netdot.CableStrand: The full CableStrand object that is related to this Splice.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.CableType`

- info (str)
- name (str)
### add_backbonecable

> ```add_backbonecable(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCable```

```
Add a BackboneCable to this CableType.

Returns:
    netdot.BackboneCable: The created BackboneCable.
```

### add_horizontalcable

> ```add_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCable```

```
Add a HorizontalCable to this CableType.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_backbonecables

> ```load_backbonecables(self) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Load the BackboneCables associated to this CableType.

Returns:
    List[netdot.BackboneCable]: All BackboneCables related to this CableType.
```

### load_horizontalcables

> ```load_horizontalcables(self) -> List[netdot.dataclasses.cables.HorizontalCable]```

```
Load the HorizontalCables associated to this CableType.

Returns:
    List[netdot.HorizontalCable]: All HorizontalCables related to this CableType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.CircuitStatus`

- info (str)
- name (str)
### add_circuit

> ```add_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.Circuit```

```
Add a Circuit to this CircuitStatus.

Returns:
    netdot.Circuit: The created Circuit.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_circuits

> ```load_circuits(self) -> List[netdot.dataclasses.cables.Circuit]```

```
Load the Circuits associated to this CircuitStatus.

Returns:
    List[netdot.Circuit]: All Circuits related to this CircuitStatus.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.CircuitType`

- info (str)
- name (str)
### add_circuit

> ```add_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.Circuit```

```
Add a Circuit to this CircuitType.

Returns:
    netdot.Circuit: The created Circuit.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_circuits

> ```load_circuits(self) -> List[netdot.dataclasses.cables.Circuit]```

```
Load the Circuits associated to this CircuitType.

Returns:
    List[netdot.Circuit]: All Circuits related to this CircuitType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.FiberType`

- info (str)
- name (str)
### add_cablestrand

> ```add_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrand```

```
Add a CableStrand to this FiberType.

Returns:
    netdot.CableStrand: The created CableStrand.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_cablestrands

> ```load_cablestrands(self) -> List[netdot.dataclasses.cables.CableStrand]```

```
Load the CableStrands associated to this FiberType.

Returns:
    List[netdot.CableStrand]: All CableStrands related to this FiberType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Device`

- site_xlink (int)
- asset_id_xlink (int)
- monitorstatus_xlink (int)
- name_xlink (int)
- host_device_xlink (int)
- bgplocalas_xlink (int)
- snmp_target_xlink (int)
- room_xlink (int)
- owner_xlink (int)
- used_by_xlink (int)
- aliases (str)
- bgpid (str)
- canautoupdate (bool)
- collect_arp (bool)
- collect_fwt (bool)
- collect_stp (bool)
- community (str)
- customer_managed (bool)
- date_installed (DateTime)
- down_from (DateTime)
- down_until (DateTime)
- info (str)
- ipforwarding (bool)
- last_arp (DateTime)
- last_fwt (DateTime)
- last_updated (DateTime)
- layers (str)
- monitor_config (bool)
- monitor_config_group (str)
- monitored (bool)
- monitoring_path_cost (int)
- oobname (str)
- oobnumber (str)
- os (str)
- rack (str)
- snmp_authkey (str)
- snmp_authprotocol (str)
- snmp_bulk (bool)
- snmp_managed (bool)
- snmp_polling (bool)
- snmp_privkey (str)
- snmp_privprotocol (str)
- snmp_securitylevel (str)
- snmp_securityname (str)
- snmp_version (int)
- stp_enabled (bool)
- stp_mst_digest (str)
- stp_mst_region (str)
- stp_mst_rev (str)
- stp_type (str)
- sysdescription (str)
- syslocation (str)
- sysname (str)
- auto_dns (bool)
- extension (str)
- snmp_conn_attempts (int)
- snmp_down (bool)
- oobname_2 (str)
- oobnumber_2 (str)
- power_outlet (str)
- power_outlet_2 (str)
- monitoring_template (str)
### add_bgppeering

> ```add_bgppeering(self, data: netdot.dataclasses.bgp.BGPPeering) -> netdot.dataclasses.bgp.BGPPeering```

```
Add a BGPPeering to this Device.

Returns:
    netdot.BGPPeering: The created BGPPeering.
```

### add_contactlist

> ```add_contactlist(self, data: netdot.dataclasses.users.ContactList) -> netdot.dataclasses.users.ContactList```

```
Add a ContactList to this Device (via DeviceContacts).

Args:
    data (netdot.ContactList): The ContactList to add to this Device.

Returns:
    netdot.DeviceContacts: The newly created DeviceContacts.
```

### add_deviceattr

> ```add_deviceattr(self, data: netdot.dataclasses.device.DeviceAttr) -> netdot.dataclasses.device.DeviceAttr```

```
Add a DeviceAttr to this Device.

Returns:
    netdot.DeviceAttr: The created DeviceAttr.
```

### add_devicecontacts

> ```add_devicecontacts(self, data: netdot.dataclasses.device.DeviceContacts) -> netdot.dataclasses.device.DeviceContacts```

```
Add a DeviceContacts to this Device.

Returns:
    netdot.DeviceContacts: The created DeviceContacts.
```

### add_devicemodule

> ```add_devicemodule(self, data: netdot.dataclasses.device.DeviceModule) -> netdot.dataclasses.device.DeviceModule```

```
Add a DeviceModule to this Device.

Returns:
    netdot.DeviceModule: The created DeviceModule.
```

### add_fwtable

> ```add_fwtable(self, data: netdot.dataclasses.fwtable.FWTable) -> netdot.dataclasses.fwtable.FWTable```

```
Add a FWTable to this Device.

Returns:
    netdot.FWTable: The created FWTable.
```

### add_interface

> ```add_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.Interface```

```
Add a Interface to this Device.

Returns:
    netdot.Interface: The created Interface.
```

### add_stpinstance

> ```add_stpinstance(self, data: netdot.dataclasses.device.STPInstance) -> netdot.dataclasses.device.STPInstance```

```
Add a STPInstance to this Device.

Returns:
    netdot.STPInstance: The created STPInstance.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_asset_id

> ```load_asset_id(self) -> netdot.dataclasses.asset.Asset```

```
Load the Asset associated to this Device.

Returns:
    netdot.Asset: The full Asset object that is related to this Device.
```

### load_bgppeerings

> ```load_bgppeerings(self) -> List[netdot.dataclasses.bgp.BGPPeering]```

```
Load the BGPPeerings associated to this Device.

Returns:
    List[netdot.BGPPeering]: All BGPPeerings related to this Device.
```

### load_contactlists

> ```load_contactlists(self) -> List[netdot.dataclasses.users.ContactList]```

```
Load the contactlists (ContactLists) associated to this Device.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of ContactLists associated to this Device).

You might prefer :func:`load_devicecontacts` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.ContactList]: All ContactLists related to this Device.
```

### load_deviceattrs

> ```load_deviceattrs(self) -> List[netdot.dataclasses.device.DeviceAttr]```

```
Load the DeviceAttrs associated to this Device.

Returns:
    List[netdot.DeviceAttr]: All DeviceAttrs related to this Device.
```

### load_devicecontacts

> ```load_devicecontacts(self) -> List[netdot.dataclasses.device.DeviceContacts]```

```
Load the DeviceContacts associated to this Device.

Returns:
    List[netdot.DeviceContacts]: All DeviceContacts related to this Device.
```

### load_devicemodules

> ```load_devicemodules(self) -> List[netdot.dataclasses.device.DeviceModule]```

```
Load the DeviceModules associated to this Device.

Returns:
    List[netdot.DeviceModule]: All DeviceModules related to this Device.
```

### load_fwtables

> ```load_fwtables(self) -> List[netdot.dataclasses.fwtable.FWTable]```

```
Load the FWTables associated to this Device.

Returns:
    List[netdot.FWTable]: All FWTables related to this Device.
```

### load_interfaces

> ```load_interfaces(self) -> List[netdot.dataclasses.interface.Interface]```

```
Load the Interfaces associated to this Device.

Returns:
    List[netdot.Interface]: All Interfaces related to this Device.
```

### load_monitorstatus

> ```load_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatus```

```
Load the MonitorStatus associated to this Device.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object that is related to this Device.
```

### load_name

> ```load_name(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this Device.

Returns:
    netdot.RR: The full RR object that is related to this Device.
```

### load_owner

> ```load_owner(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this Device.

Returns:
    netdot.Entity: The full Entity object that is related to this Device.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the Room associated to this Device.

Returns:
    netdot.Room: The full Room object that is related to this Device.
```

### load_site

> ```load_site(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this Device.

Returns:
    netdot.Site: The full Site object that is related to this Device.
```

### load_snmp_target

> ```load_snmp_target(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this Device.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this Device.
```

### load_stpinstances

> ```load_stpinstances(self) -> List[netdot.dataclasses.device.STPInstance]```

```
Load the STPInstances associated to this Device.

Returns:
    List[netdot.STPInstance]: All STPInstances related to this Device.
```

### load_used_by

> ```load_used_by(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this Device.

Returns:
    netdot.Entity: The full Entity object that is related to this Device.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DeviceAttr`

- device_xlink (int)
- name_xlink (int)
- value (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this DeviceAttr.

Returns:
    netdot.Device: The full Device object that is related to this DeviceAttr.
```

### load_name

> ```load_name(self) -> netdot.dataclasses.device.DeviceAttrName```

```
Load the DeviceAttrName associated to this DeviceAttr.

Returns:
    netdot.DeviceAttrName: The full DeviceAttrName object that is related to this DeviceAttr.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DeviceAttrName`

- info (str)
- name (str)
### add_deviceattr

> ```add_deviceattr(self, data: netdot.dataclasses.device.DeviceAttr) -> netdot.dataclasses.device.DeviceAttr```

```
Add a DeviceAttr to this DeviceAttrName.

Returns:
    netdot.DeviceAttr: The created DeviceAttr.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_deviceattrs

> ```load_deviceattrs(self) -> List[netdot.dataclasses.device.DeviceAttr]```

```
Load the DeviceAttrs associated to this DeviceAttrName.

Returns:
    List[netdot.DeviceAttr]: All DeviceAttrs related to this DeviceAttrName.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DeviceContacts`

- contactlist_xlink (int)
- device_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this DeviceContacts.

Returns:
    netdot.ContactList: The full ContactList object that is related to this DeviceContacts.
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this DeviceContacts.

Returns:
    netdot.Device: The full Device object that is related to this DeviceContacts.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DeviceModule`

- class_ (str)
- contained_in (int)
- date_installed (DateTime)
- description (str)
- device_xlink (int)
- fru (bool) (Default: False)
- fw_rev (str)
- hw_rev (str)
- last_updated (DateTime)
- model (str)
- name (str)
- number (int)
- pos (int)
- sw_rev (str)
- type (str)
- asset_id_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this DeviceModule.

Returns:
    netdot.Device: The full Device object that is related to this DeviceModule.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.OUI`

- oui (str)
- vendor (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.STPInstance`

- bridge_priority (int)
- device_xlink (int)
- number (int)
- root_bridge (str)
- root_port (int)
### add_interfacevlan

> ```add_interfacevlan(self, data: netdot.dataclasses.interface.InterfaceVLAN) -> netdot.dataclasses.interface.InterfaceVLAN```

```
Add a InterfaceVLAN to this STPInstance.

Returns:
    netdot.InterfaceVLAN: The created InterfaceVLAN.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this STPInstance.

Returns:
    netdot.Device: The full Device object that is related to this STPInstance.
```

### load_interfacevlans

> ```load_interfacevlans(self) -> List[netdot.dataclasses.interface.InterfaceVLAN]```

```
Load the InterfaceVLANs associated to this STPInstance.

Returns:
    List[netdot.InterfaceVLAN]: All InterfaceVLANs related to this STPInstance.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DHCPScope`

- ipblock_xlink (int)
- text (str)
- name (str)
- container_xlink (int)
- physaddr_xlink (int)
- type_xlink (int)
- export_file (str)
- enable_failover (bool) (Default: False)
- failover_peer (str)
- active (bool) (Default: False)
- duid (str)
- version (int)
### add_dhcpscope

> ```add_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScope```

```
Add a DHCPScope to this DHCPScope.

Returns:
    netdot.DHCPScope: The created DHCPScope.
```

### add_dhcpscopeuse_as_scope

> ```add_dhcpscopeuse_as_scope(self, data: netdot.dataclasses.dhcp.DHCPScopeUse) -> netdot.dataclasses.dhcp.DHCPScopeUse```

```
Add a DHCPScopeUse to this DHCPScope.

Returns:
    netdot.DHCPScopeUse: The created DHCPScopeUse.
```

### add_dhcpscopeuse_as_template

> ```add_dhcpscopeuse_as_template(self, data: netdot.dataclasses.dhcp.DHCPScopeUse) -> netdot.dataclasses.dhcp.DHCPScopeUse```

```
Add a DHCPScopeUse to this DHCPScope.

Returns:
    netdot.DHCPScopeUse: The created DHCPScopeUse.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_container

> ```load_container(self) -> netdot.dataclasses.dhcp.DHCPScope```

```
Load the DHCPScope associated to this DHCPScope.

Returns:
    netdot.DHCPScope: The full DHCPScope object that is related to this DHCPScope.
```

### load_dhcpscopes

> ```load_dhcpscopes(self) -> List[netdot.dataclasses.dhcp.DHCPScope]```

```
Load the DHCPScopes associated to this DHCPScope.

Returns:
    List[netdot.DHCPScope]: All DHCPScopes related to this DHCPScope.
```

### load_ipblock

> ```load_ipblock(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this DHCPScope.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this DHCPScope.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the PhysAddr associated to this DHCPScope.

Returns:
    netdot.PhysAddr: The full PhysAddr object that is related to this DHCPScope.
```

### load_scope_dhcpscopeuses

> ```load_scope_dhcpscopeuses(self) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]```

```
Load the DHCPScopeUses associated to this DHCPScope.

Returns:
    List[netdot.DHCPScopeUse]: All DHCPScopeUses related to this DHCPScope.
```

### load_template_dhcpscopeuses

> ```load_template_dhcpscopeuses(self) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]```

```
Load the DHCPScopeUses associated to this DHCPScope.

Returns:
    List[netdot.DHCPScopeUse]: All DHCPScopeUses related to this DHCPScope.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.dhcp.DHCPScopeType```

```
Load the DHCPScopeType associated to this DHCPScope.

Returns:
    netdot.DHCPScopeType: The full DHCPScopeType object that is related to this DHCPScope.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DHCPAttr`

- name_xlink (int)
- scope_xlink (int)
- value (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DHCPScopeUse`

- scope_xlink (int)
- template_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_scope

> ```load_scope(self) -> netdot.dataclasses.dhcp.DHCPScope```

```
Load the DHCPScope associated to this DHCPScopeUse.

Returns:
    netdot.DHCPScope: The full DHCPScope object that is related to this DHCPScopeUse.
```

### load_template

> ```load_template(self) -> netdot.dataclasses.dhcp.DHCPScope```

```
Load the DHCPScope associated to this DHCPScopeUse.

Returns:
    netdot.DHCPScope: The full DHCPScope object that is related to this DHCPScopeUse.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DHCPAttrName`

- code (int)
- format (str)
- info (str)
- name (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.DHCPScopeType`

- info (str)
- name (str)
### add_dhcpscope

> ```add_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScope```

```
Add a DHCPScope to this DHCPScopeType.

Returns:
    netdot.DHCPScope: The created DHCPScope.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_dhcpscopes

> ```load_dhcpscopes(self) -> List[netdot.dataclasses.dhcp.DHCPScope]```

```
Load the DHCPScopes associated to this DHCPScopeType.

Returns:
    List[netdot.DHCPScope]: All DHCPScopes related to this DHCPScopeType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Zone`

- active (bool) (Default: False)
- contactlist_xlink (int)
- expire (int)
- info (str)
- minimum (int)
- name (str)
- refresh (int)
- retry (int)
- rname (str)
- serial (int)
- default_ttl (int)
- export_file (str)
- mname (str)
- include (str)
### add_rr

> ```add_rr(self, data: netdot.dataclasses.dns.RR) -> netdot.dataclasses.dns.RR```

```
Add a RR to this Zone.

Returns:
    netdot.RR: The created RR.
```

### add_subnetzone

> ```add_subnetzone(self, data: netdot.dataclasses.ipblock.SubnetZone) -> netdot.dataclasses.ipblock.SubnetZone```

```
Add a SubnetZone to this Zone.

Returns:
    netdot.SubnetZone: The created SubnetZone.
```

### add_zonealias

> ```add_zonealias(self, data: netdot.dataclasses.dns.ZoneAlias) -> netdot.dataclasses.dns.ZoneAlias```

```
Add a ZoneAlias to this Zone.

Returns:
    netdot.ZoneAlias: The created ZoneAlias.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this Zone.

Returns:
    netdot.ContactList: The full ContactList object that is related to this Zone.
```

### load_rr

> ```load_rr(self) -> List[netdot.dataclasses.dns.RR]```

```
Load the RR associated to this Zone.

Returns:
    List[netdot.RR]: All RR related to this Zone.
```

### load_subnetzones

> ```load_subnetzones(self) -> List[netdot.dataclasses.ipblock.SubnetZone]```

```
Load the SubnetZones associated to this Zone.

Returns:
    List[netdot.SubnetZone]: All SubnetZones related to this Zone.
```

### load_zonealiases

> ```load_zonealiases(self) -> List[netdot.dataclasses.dns.ZoneAlias]```

```
Load the ZoneAliases associated to this Zone.

Returns:
    List[netdot.ZoneAlias]: All ZoneAliases related to this Zone.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.ZoneAlias`

- info (str)
- name (str)
- zone_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_zone

> ```load_zone(self) -> netdot.dataclasses.dns.Zone```

```
Load the Zone associated to this ZoneAlias.

Returns:
    netdot.Zone: The full Zone object that is related to this ZoneAlias.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RR`

- active (bool) (Default: False)
- auto_update (bool) (Default: False)
- expiration (DateTime)
- info (str)
- name (str)
- zone_xlink (int)
- created (DateTime)
- modified (DateTime)
### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this RR.

Returns:
    netdot.Device: The created Device.
```

### add_rraddr

> ```add_rraddr(self, data: netdot.dataclasses.dns.RRADDR) -> netdot.dataclasses.dns.RRADDR```

```
Add a RRADDR to this RR.

Returns:
    netdot.RRADDR: The created RRADDR.
```

### add_rrcname

> ```add_rrcname(self, data: netdot.dataclasses.dns.RRCNAME) -> netdot.dataclasses.dns.RRCNAME```

```
Add a RRCNAME to this RR.

Returns:
    netdot.RRCNAME: The created RRCNAME.
```

### add_rrds

> ```add_rrds(self, data: netdot.dataclasses.dns.RRDS) -> netdot.dataclasses.dns.RRDS```

```
Add a RRDS to this RR.

Returns:
    netdot.RRDS: The created RRDS.
```

### add_rrhinfo

> ```add_rrhinfo(self, data: netdot.dataclasses.dns.RRHINFO) -> netdot.dataclasses.dns.RRHINFO```

```
Add a RRHINFO to this RR.

Returns:
    netdot.RRHINFO: The created RRHINFO.
```

### add_rrloc

> ```add_rrloc(self, data: netdot.dataclasses.dns.RRLOC) -> netdot.dataclasses.dns.RRLOC```

```
Add a RRLOC to this RR.

Returns:
    netdot.RRLOC: The created RRLOC.
```

### add_rrmx

> ```add_rrmx(self, data: netdot.dataclasses.dns.RRMX) -> netdot.dataclasses.dns.RRMX```

```
Add a RRMX to this RR.

Returns:
    netdot.RRMX: The created RRMX.
```

### add_rrnaptr

> ```add_rrnaptr(self, data: netdot.dataclasses.dns.RRNAPTR) -> netdot.dataclasses.dns.RRNAPTR```

```
Add a RRNAPTR to this RR.

Returns:
    netdot.RRNAPTR: The created RRNAPTR.
```

### add_rrns

> ```add_rrns(self, data: netdot.dataclasses.dns.RRNS) -> netdot.dataclasses.dns.RRNS```

```
Add a RRNS to this RR.

Returns:
    netdot.RRNS: The created RRNS.
```

### add_rrptr

> ```add_rrptr(self, data: netdot.dataclasses.dns.RRPTR) -> netdot.dataclasses.dns.RRPTR```

```
Add a RRPTR to this RR.

Returns:
    netdot.RRPTR: The created RRPTR.
```

### add_rrsrv

> ```add_rrsrv(self, data: netdot.dataclasses.dns.RRSRV) -> netdot.dataclasses.dns.RRSRV```

```
Add a RRSRV to this RR.

Returns:
    netdot.RRSRV: The created RRSRV.
```

### add_rrtxt

> ```add_rrtxt(self, data: netdot.dataclasses.dns.RRTXT) -> netdot.dataclasses.dns.RRTXT```

```
Add a RRTXT to this RR.

Returns:
    netdot.RRTXT: The created RRTXT.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this RR.

Returns:
    List[netdot.Device]: All Devices related to this RR.
```

### load_rraddr

> ```load_rraddr(self) -> List[netdot.dataclasses.dns.RRADDR]```

```
Load the RRADDR associated to this RR.

Returns:
    List[netdot.RRADDR]: All RRADDR related to this RR.
```

### load_rrcname

> ```load_rrcname(self) -> List[netdot.dataclasses.dns.RRCNAME]```

```
Load the RRCNAME associated to this RR.

Returns:
    List[netdot.RRCNAME]: All RRCNAME related to this RR.
```

### load_rrds

> ```load_rrds(self) -> List[netdot.dataclasses.dns.RRDS]```

```
Load the RRDS associated to this RR.

Returns:
    List[netdot.RRDS]: All RRDS related to this RR.
```

### load_rrhinfo

> ```load_rrhinfo(self) -> List[netdot.dataclasses.dns.RRHINFO]```

```
Load the RRHINFO associated to this RR.

Returns:
    List[netdot.RRHINFO]: All RRHINFO related to this RR.
```

### load_rrloc

> ```load_rrloc(self) -> List[netdot.dataclasses.dns.RRLOC]```

```
Load the RRLOC associated to this RR.

Returns:
    List[netdot.RRLOC]: All RRLOC related to this RR.
```

### load_rrmx

> ```load_rrmx(self) -> List[netdot.dataclasses.dns.RRMX]```

```
Load the RRMX associated to this RR.

Returns:
    List[netdot.RRMX]: All RRMX related to this RR.
```

### load_rrnaptr

> ```load_rrnaptr(self) -> List[netdot.dataclasses.dns.RRNAPTR]```

```
Load the RRNAPTR associated to this RR.

Returns:
    List[netdot.RRNAPTR]: All RRNAPTR related to this RR.
```

### load_rrns

> ```load_rrns(self) -> List[netdot.dataclasses.dns.RRNS]```

```
Load the RRNS associated to this RR.

Returns:
    List[netdot.RRNS]: All RRNS related to this RR.
```

### load_rrptr

> ```load_rrptr(self) -> List[netdot.dataclasses.dns.RRPTR]```

```
Load the RRPTR associated to this RR.

Returns:
    List[netdot.RRPTR]: All RRPTR related to this RR.
```

### load_rrsrv

> ```load_rrsrv(self) -> List[netdot.dataclasses.dns.RRSRV]```

```
Load the RRSRV associated to this RR.

Returns:
    List[netdot.RRSRV]: All RRSRV related to this RR.
```

### load_rrtxt

> ```load_rrtxt(self) -> List[netdot.dataclasses.dns.RRTXT]```

```
Load the RRTXT associated to this RR.

Returns:
    List[netdot.RRTXT]: All RRTXT related to this RR.
```

### load_zone

> ```load_zone(self) -> netdot.dataclasses.dns.Zone```

```
Load the Zone associated to this RR.

Returns:
    netdot.Zone: The full Zone object that is related to this RR.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRADDR`

- ipblock_xlink (int)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_ipblock

> ```load_ipblock(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this RRADDR.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this RRADDR.
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRADDR.

Returns:
    netdot.RR: The full RR object that is related to this RRADDR.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRCNAME`

- cname (str)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRCNAME.

Returns:
    netdot.RR: The full RR object that is related to this RRCNAME.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRDS`

- algorithm (int)
- digest (str)
- digest_type (int)
- key_tag (int)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRDS.

Returns:
    netdot.RR: The full RR object that is related to this RRDS.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRHINFO`

- cpu (str)
- os (str)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRHINFO.

Returns:
    netdot.RR: The full RR object that is related to this RRHINFO.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRLOC`

- altitude (int)
- horiz_pre (str)
- latitude (str)
- longitude (str)
- rr_xlink (int)
- size (str)
- ttl (str)
- vert_pre (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRLOC.

Returns:
    netdot.RR: The full RR object that is related to this RRLOC.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRMX`

- exchange (str)
- preference (int)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRMX.

Returns:
    netdot.RR: The full RR object that is related to this RRMX.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRNAPTR`

- flags (str)
- order_field (int)
- preference (int)
- regexpr (str)
- replacement (str)
- rr_xlink (int)
- services (str)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRNAPTR.

Returns:
    netdot.RR: The full RR object that is related to this RRNAPTR.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRNS`

- nsdname (str)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRNS.

Returns:
    netdot.RR: The full RR object that is related to this RRNS.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRPTR`

- ipblock_xlink (int)
- ptrdname (str)
- rr_xlink (int)
- ttl (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_ipblock

> ```load_ipblock(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this RRPTR.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this RRPTR.
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRPTR.

Returns:
    netdot.RR: The full RR object that is related to this RRPTR.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRSRV`

- port (int)
- priority (int)
- rr_xlink (int)
- target (str)
- ttl (str)
- weight (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRSRV.

Returns:
    netdot.RR: The full RR object that is related to this RRSRV.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.RRTXT`

- rr_xlink (int)
- ttl (str)
- txtdata (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the RR associated to this RRTXT.

Returns:
    netdot.RR: The full RR object that is related to this RRTXT.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Entity`

- acctnumber (str)
- aliases (str)
- asname (str)
- asnumber (int)
- availability_xlink (int)
- contactlist_xlink (int)
- info (str)
- maint_contract (str)
- name (str)
- oid (str)
- short_name (str)
- config_type (str)
### add_backbonecable

> ```add_backbonecable(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCable```

```
Add a BackboneCable to this Entity.

Returns:
    netdot.BackboneCable: The created BackboneCable.
```

### add_bgppeering

> ```add_bgppeering(self, data: netdot.dataclasses.bgp.BGPPeering) -> netdot.dataclasses.bgp.BGPPeering```

```
Add a BGPPeering to this Entity.

Returns:
    netdot.BGPPeering: The created BGPPeering.
```

### add_circuit

> ```add_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.Circuit```

```
Add a Circuit to this Entity.

Returns:
    netdot.Circuit: The created Circuit.
```

### add_device_as_owner

> ```add_device_as_owner(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this Entity.

Returns:
    netdot.Device: The created Device.
```

### add_device_as_used_by

> ```add_device_as_used_by(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this Entity.

Returns:
    netdot.Device: The created Device.
```

### add_entityrole

> ```add_entityrole(self, data: netdot.dataclasses.entity.EntityRole) -> netdot.dataclasses.entity.EntityRole```

```
Add a EntityRole to this Entity.

Returns:
    netdot.EntityRole: The created EntityRole.
```

### add_entitysite

> ```add_entitysite(self, data: netdot.dataclasses.entity.EntitySite) -> netdot.dataclasses.entity.EntitySite```

```
Add a EntitySite to this Entity.

Returns:
    netdot.EntitySite: The created EntitySite.
```

### add_ipblock_as_owner

> ```add_ipblock_as_owner(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this Entity.

Returns:
    netdot.IPBlock: The created IPBlock.
```

### add_ipblock_as_used_by

> ```add_ipblock_as_used_by(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this Entity.

Returns:
    netdot.IPBlock: The created IPBlock.
```

### add_maintcontract

> ```add_maintcontract(self, data: netdot.dataclasses.misc.MaintContract) -> netdot.dataclasses.misc.MaintContract```

```
Add a MaintContract to this Entity.

Returns:
    netdot.MaintContract: The created MaintContract.
```

### add_person

> ```add_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.Person```

```
Add a Person to this Entity.

Returns:
    netdot.Person: The created Person.
```

### add_site

> ```add_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.Site```

```
Add a Site to this Entity (via EntitySite).

Args:
    data (netdot.Site): The Site to add to this Entity.

Returns:
    netdot.EntitySite: The newly created EntitySite.
```

### add_sitelink

> ```add_sitelink(self, data: netdot.dataclasses.site.SiteLink) -> netdot.dataclasses.site.SiteLink```

```
Add a SiteLink to this Entity.

Returns:
    netdot.SiteLink: The created SiteLink.
```

### add_type

> ```add_type(self, data: netdot.dataclasses.entity.EntityType) -> netdot.dataclasses.entity.EntityType```

```
Add a EntityType to this Entity (via EntityRole).

Args:
    data (netdot.EntityType): The EntityType to add to this Entity.

Returns:
    netdot.EntityRole: The newly created EntityRole.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_availability

> ```load_availability(self) -> netdot.dataclasses.misc.Availability```

```
Load the Availability associated to this Entity.

Returns:
    netdot.Availability: The full Availability object that is related to this Entity.
```

### load_backbonecables

> ```load_backbonecables(self) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Load the BackboneCables associated to this Entity.

Returns:
    List[netdot.BackboneCable]: All BackboneCables related to this Entity.
```

### load_bgppeerings

> ```load_bgppeerings(self) -> List[netdot.dataclasses.bgp.BGPPeering]```

```
Load the BGPPeerings associated to this Entity.

Returns:
    List[netdot.BGPPeering]: All BGPPeerings related to this Entity.
```

### load_circuits

> ```load_circuits(self) -> List[netdot.dataclasses.cables.Circuit]```

```
Load the Circuits associated to this Entity.

Returns:
    List[netdot.Circuit]: All Circuits related to this Entity.
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this Entity.

Returns:
    netdot.ContactList: The full ContactList object that is related to this Entity.
```

### load_entityroles

> ```load_entityroles(self) -> List[netdot.dataclasses.entity.EntityRole]```

```
Load the EntityRoles associated to this Entity.

Returns:
    List[netdot.EntityRole]: All EntityRoles related to this Entity.
```

### load_entitysites

> ```load_entitysites(self) -> List[netdot.dataclasses.entity.EntitySite]```

```
Load the EntitySites associated to this Entity.

Returns:
    List[netdot.EntitySite]: All EntitySites related to this Entity.
```

### load_maintcontracts

> ```load_maintcontracts(self) -> List[netdot.dataclasses.misc.MaintContract]```

```
Load the MaintContracts associated to this Entity.

Returns:
    List[netdot.MaintContract]: All MaintContracts related to this Entity.
```

### load_owner_devices

> ```load_owner_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this Entity.

Returns:
    List[netdot.Device]: All Devices related to this Entity.
```

### load_owner_ipblocks

> ```load_owner_ipblocks(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the IPBlocks associated to this Entity.

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this Entity.
```

### load_persons

> ```load_persons(self) -> List[netdot.dataclasses.users.Person]```

```
Load the Persons associated to this Entity.

Returns:
    List[netdot.Person]: All Persons related to this Entity.
```

### load_sitelinks

> ```load_sitelinks(self) -> List[netdot.dataclasses.site.SiteLink]```

```
Load the SiteLinks associated to this Entity.

Returns:
    List[netdot.SiteLink]: All SiteLinks related to this Entity.
```

### load_sites

> ```load_sites(self) -> List[netdot.dataclasses.site.Site]```

```
Load the sites (Sites) associated to this Entity.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of Sites associated to this Entity).

You might prefer :func:`load_entitysites` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.Site]: All Sites related to this Entity.
```

### load_types

> ```load_types(self) -> List[netdot.dataclasses.entity.EntityType]```

```
Load the types (EntityTypes) associated to this Entity.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of EntityTypes associated to this Entity).

You might prefer :func:`load_entityroles` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.EntityType]: All EntityTypes related to this Entity.
```

### load_used_by_devices

> ```load_used_by_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this Entity.

Returns:
    List[netdot.Device]: All Devices related to this Entity.
```

### load_used_by_ipblocks

> ```load_used_by_ipblocks(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the IPBlocks associated to this Entity.

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this Entity.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.EntityType`

- info (str)
- name (str)
### add_entity

> ```add_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.Entity```

```
Add a Entity to this EntityType (via EntityRole).

Args:
    data (netdot.Entity): The Entity to add to this EntityType.

Returns:
    netdot.EntityRole: The newly created EntityRole.
```

### add_entityrole

> ```add_entityrole(self, data: netdot.dataclasses.entity.EntityRole) -> netdot.dataclasses.entity.EntityRole```

```
Add a EntityRole to this EntityType.

Returns:
    netdot.EntityRole: The created EntityRole.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_entities

> ```load_entities(self) -> List[netdot.dataclasses.entity.Entity]```

```
Load the entities (Entities) associated to this EntityType.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of Entities associated to this EntityType).

You might prefer :func:`load_entityroles` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.Entity]: All Entities related to this EntityType.
```

### load_entityroles

> ```load_entityroles(self) -> List[netdot.dataclasses.entity.EntityRole]```

```
Load the EntityRoles associated to this EntityType.

Returns:
    List[netdot.EntityRole]: All EntityRoles related to this EntityType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.EntityRole`

- entity_xlink (int)
- type_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this EntityRole.

Returns:
    netdot.Entity: The full Entity object that is related to this EntityRole.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.entity.EntityType```

```
Load the EntityType associated to this EntityRole.

Returns:
    netdot.EntityType: The full EntityType object that is related to this EntityRole.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.EntitySite`

- entity_xlink (int)
- site_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this EntitySite.

Returns:
    netdot.Entity: The full Entity object that is related to this EntitySite.
```

### load_site

> ```load_site(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this EntitySite.

Returns:
    netdot.Site: The full Site object that is related to this EntitySite.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Interface`

- physaddr_xlink (int)
- oper_status (str)
- admin_status (str)
- admin_duplex (str)
- bpdu_filter_enabled (bool)
- bpdu_guard_enabled (bool)
- contactlist_xlink (int)
- description (str)
- device_xlink (str)
- doc_status (str)
- down_from (DateTime)
- down_until (DateTime)
- dp_remote_id (str)
- dp_remote_ip (str)
- dp_remote_port (str)
- dp_remote_type (str)
- info (str)
- jack_xlink (str)
- jack_char (str)
- loop_guard_enabled (bool)
- monitored (bool)
- monitorstatus_xlink (int)
- name (str)
- neighbor_xlink (int)
- neighbor_fixed (bool)
- neighbor_missed (int)
- number (str)
- oper_duplex (str)
- overwrite_descr (bool)
- room_char (str)
- root_guard_enabled (bool)
- snmp_managed (bool)
- speed (int)
- stp_id (str)
- type (str)
- ignore_ip (bool)
- auto_dns (bool)
- circuit (int)
- dlci (str)
### add_fwtableentry

> ```add_fwtableentry(self, data: netdot.dataclasses.fwtable.FWTableEntry) -> netdot.dataclasses.fwtable.FWTableEntry```

```
Add a FWTableEntry to this Interface.

Returns:
    netdot.FWTableEntry: The created FWTableEntry.
```

### add_interfacevlan

> ```add_interfacevlan(self, data: netdot.dataclasses.interface.InterfaceVLAN) -> netdot.dataclasses.interface.InterfaceVLAN```

```
Add a InterfaceVLAN to this Interface.

Returns:
    netdot.InterfaceVLAN: The created InterfaceVLAN.
```

### add_ipblock

> ```add_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this Interface.

Returns:
    netdot.IPBlock: The created IPBlock.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this Interface.

Returns:
    netdot.ContactList: The full ContactList object that is related to this Interface.
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this Interface.

Returns:
    netdot.Device: The full Device object that is related to this Interface.
```

### load_fwtableentries

> ```load_fwtableentries(self) -> List[netdot.dataclasses.fwtable.FWTableEntry]```

```
Load the FWTableEntries associated to this Interface.

Returns:
    List[netdot.FWTableEntry]: All FWTableEntries related to this Interface.
```

### load_interfacevlans

> ```load_interfacevlans(self) -> List[netdot.dataclasses.interface.InterfaceVLAN]```

```
Load the InterfaceVLANs associated to this Interface.

Returns:
    List[netdot.InterfaceVLAN]: All InterfaceVLANs related to this Interface.
```

### load_ipblocks

> ```load_ipblocks(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the IPBlocks associated to this Interface.

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this Interface.
```

### load_monitorstatus

> ```load_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatus```

```
Load the MonitorStatus associated to this Interface.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object that is related to this Interface.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the PhysAddr associated to this Interface.

Returns:
    netdot.PhysAddr: The full PhysAddr object that is related to this Interface.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.InterfaceVLAN`

- interface_xlink (int)
- stp_des_bridge (str)
- stp_des_port (str)
- stp_instance_xlink (int)
- stp_state (str)
- vlan_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_interface

> ```load_interface(self) -> netdot.dataclasses.interface.Interface```

```
Load the Interface associated to this InterfaceVLAN.

Returns:
    netdot.Interface: The full Interface object that is related to this InterfaceVLAN.
```

### load_stp_instance

> ```load_stp_instance(self) -> netdot.dataclasses.device.STPInstance```

```
Load the STPInstance associated to this InterfaceVLAN.

Returns:
    netdot.STPInstance: The full STPInstance object that is related to this InterfaceVLAN.
```

### load_vlan

> ```load_vlan(self) -> netdot.dataclasses.vlan.VLAN```

```
Load the VLAN associated to this InterfaceVLAN.

Returns:
    netdot.VLAN: The full VLAN object that is related to this InterfaceVLAN.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.IPBlock`

- address (ip_address)
- description (str)
- first_seen (DateTime)
- info (str)
- interface_xlink (int)
- last_seen (DateTime)
- owner_xlink (int)
- parent_xlink (int)
- prefix (int)
- status_xlink (int)
- used_by_xlink (int)
- version (int)
- vlan_xlink (int)
- use_network_broadcast (bool) (Default: False)
- monitored (bool) (Default: False)
- rir (str)
- asn_xlink (int)
### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this IPBlock.

Returns:
    netdot.Device: The created Device.
```

### add_dhcpscope

> ```add_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScope```

```
Add a DHCPScope to this IPBlock.

Returns:
    netdot.DHCPScope: The created DHCPScope.
```

### add_ipblockattr

> ```add_ipblockattr(self, data: netdot.dataclasses.ipblock.IPBlockAttr) -> netdot.dataclasses.ipblock.IPBlockAttr```

```
Add a IPBlockAttr to this IPBlock.

Returns:
    netdot.IPBlockAttr: The created IPBlockAttr.
```

### add_ipservice

> ```add_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPService```

```
Add a IPService to this IPBlock.

Returns:
    netdot.IPService: The created IPService.
```

### add_rraddr

> ```add_rraddr(self, data: netdot.dataclasses.dns.RRADDR) -> netdot.dataclasses.dns.RRADDR```

```
Add a RRADDR to this IPBlock.

Returns:
    netdot.RRADDR: The created RRADDR.
```

### add_rrptr

> ```add_rrptr(self, data: netdot.dataclasses.dns.RRPTR) -> netdot.dataclasses.dns.RRPTR```

```
Add a RRPTR to this IPBlock.

Returns:
    netdot.RRPTR: The created RRPTR.
```

### add_site

> ```add_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.Site```

```
Add a Site to this IPBlock (via SiteSubnet).

Args:
    data (netdot.Site): The Site to add to this IPBlock.

Returns:
    netdot.SiteSubnet: The newly created SiteSubnet.
```

### add_sitesubnet

> ```add_sitesubnet(self, data: netdot.dataclasses.site.SiteSubnet) -> netdot.dataclasses.site.SiteSubnet```

```
Add a SiteSubnet to this IPBlock.

Returns:
    netdot.SiteSubnet: The created SiteSubnet.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### get_children

> ```get_children(self) -> List[ForwardRef('IPBlock')]```

```
Get the children of this IPBlock.

Returns:
    List[IPBlock]: The children of this IPBlock.

Raises:
    HTTPError: If no results found.
```

### get_parent

> ```get_parent(self) -> 'IPBlock'```

```
Get the parent of this IPBlock.

Returns:
    IPBlock: The parent of this IPBlock.

Raises:
    HTTPError: If no results found.
```

### load_asn

> ```load_asn(self) -> netdot.dataclasses.bgp.ASN```

```
Load the ASN associated to this IPBlock.

Returns:
    netdot.ASN: The full ASN object that is related to this IPBlock.
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this IPBlock.

Returns:
    List[netdot.Device]: All Devices related to this IPBlock.
```

### load_dhcpscopes

> ```load_dhcpscopes(self) -> List[netdot.dataclasses.dhcp.DHCPScope]```

```
Load the DHCPScopes associated to this IPBlock.

Returns:
    List[netdot.DHCPScope]: All DHCPScopes related to this IPBlock.
```

### load_interface

> ```load_interface(self) -> netdot.dataclasses.interface.Interface```

```
Load the Interface associated to this IPBlock.

Returns:
    netdot.Interface: The full Interface object that is related to this IPBlock.
```

### load_ipblockattrs

> ```load_ipblockattrs(self) -> List[netdot.dataclasses.ipblock.IPBlockAttr]```

```
Load the IPBlockAttrs associated to this IPBlock.

Returns:
    List[netdot.IPBlockAttr]: All IPBlockAttrs related to this IPBlock.
```

### load_ipservices

> ```load_ipservices(self) -> List[netdot.dataclasses.ipblock.IPService]```

```
Load the IPServices associated to this IPBlock.

Returns:
    List[netdot.IPService]: All IPServices related to this IPBlock.
```

### load_owner

> ```load_owner(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this IPBlock.

Returns:
    netdot.Entity: The full Entity object that is related to this IPBlock.
```

### load_rraddr

> ```load_rraddr(self) -> List[netdot.dataclasses.dns.RRADDR]```

```
Load the RRADDR associated to this IPBlock.

Returns:
    List[netdot.RRADDR]: All RRADDR related to this IPBlock.
```

### load_rrptr

> ```load_rrptr(self) -> List[netdot.dataclasses.dns.RRPTR]```

```
Load the RRPTR associated to this IPBlock.

Returns:
    List[netdot.RRPTR]: All RRPTR related to this IPBlock.
```

### load_sites

> ```load_sites(self) -> List[netdot.dataclasses.site.Site]```

```
Load the sites (Sites) associated to this IPBlock.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of Sites associated to this IPBlock).

You might prefer :func:`load_sitesubnets` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.Site]: All Sites related to this IPBlock.
```

### load_sitesubnets

> ```load_sitesubnets(self) -> List[netdot.dataclasses.site.SiteSubnet]```

```
Load the SiteSubnets associated to this IPBlock.

Returns:
    List[netdot.SiteSubnet]: All SiteSubnets related to this IPBlock.
```

### load_status

> ```load_status(self) -> netdot.dataclasses.ipblock.IPBlockStatus```

```
Load the IPBlockStatus associated to this IPBlock.

Returns:
    netdot.IPBlockStatus: The full IPBlockStatus object that is related to this IPBlock.
```

### load_used_by

> ```load_used_by(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this IPBlock.

Returns:
    netdot.Entity: The full Entity object that is related to this IPBlock.
```

### load_vlan

> ```load_vlan(self) -> netdot.dataclasses.vlan.VLAN```

```
Load the VLAN associated to this IPBlock.

Returns:
    netdot.VLAN: The full VLAN object that is related to this IPBlock.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.IPBlockAttrName`

- info (str)
- name (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.IPBlockStatus`

- name (str)
### add_ipblock

> ```add_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this IPBlockStatus.

Returns:
    netdot.IPBlock: The created IPBlock.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_ipblocks

> ```load_ipblocks(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the IPBlocks associated to this IPBlockStatus.

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this IPBlockStatus.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Service`

- info (str)
- name (str)
### add_ipservice

> ```add_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPService```

```
Add a IPService to this Service.

Returns:
    netdot.IPService: The created IPService.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_ipservices

> ```load_ipservices(self) -> List[netdot.dataclasses.ipblock.IPService]```

```
Load the IPServices associated to this Service.

Returns:
    List[netdot.IPService]: All IPServices related to this Service.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.IPBlockAttr`

- ipblock_xlink (int)
- name_xlink (int)
- value (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_ipblock

> ```load_ipblock(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this IPBlockAttr.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this IPBlockAttr.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.IPService`

- contactlist_xlink (int)
- ip_xlink (int)
- monitored (bool) (Default: False)
- monitorstatus_xlink (int)
- service_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this IPService.

Returns:
    netdot.ContactList: The full ContactList object that is related to this IPService.
```

### load_ip

> ```load_ip(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this IPService.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this IPService.
```

### load_monitorstatus

> ```load_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatus```

```
Load the MonitorStatus associated to this IPService.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object that is related to this IPService.
```

### load_service

> ```load_service(self) -> netdot.dataclasses.ipblock.Service```

```
Load the Service associated to this IPService.

Returns:
    netdot.Service: The full Service object that is related to this IPService.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.SubnetZone`

- subnet_xlink (int)
- zone_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_zone

> ```load_zone(self) -> netdot.dataclasses.dns.Zone```

```
Load the Zone associated to this SubnetZone.

Returns:
    netdot.Zone: The full Zone object that is related to this SubnetZone.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.ProductType`

- info (str)
- name (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Product`

- description (str)
- info (str)
- manufacturer_xlink (int)
- name (str)
- sysobjectid (str)
- type_xlink (int)
- latest_os (str)
- part_number (str)
- config_type (str)
### add_asset

> ```add_asset(self, data: netdot.dataclasses.asset.Asset) -> netdot.dataclasses.asset.Asset```

```
Add a Asset to this Product.

Returns:
    netdot.Asset: The created Asset.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_assets

> ```load_assets(self) -> List[netdot.dataclasses.asset.Asset]```

```
Load the Assets associated to this Product.

Returns:
    List[netdot.Asset]: All Assets related to this Product.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Site`

- name (str)
- aliases (str)
- availability_xlink (int)
- contactlist_xlink (int)
- gsf (str)
- number (str)
- street1 (str)
- street2 (str)
- state (str)
- city (str)
- country (str)
- zip (str)
- pobox (str)
- info (str)
### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this Site.

Returns:
    netdot.Device: The created Device.
```

### add_entity

> ```add_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.Entity```

```
Add a Entity to this Site (via EntitySite).

Args:
    data (netdot.Entity): The Entity to add to this Site.

Returns:
    netdot.EntitySite: The newly created EntitySite.
```

### add_entitysite

> ```add_entitysite(self, data: netdot.dataclasses.entity.EntitySite) -> netdot.dataclasses.entity.EntitySite```

```
Add a EntitySite to this Site.

Returns:
    netdot.EntitySite: The created EntitySite.
```

### add_floor

> ```add_floor(self, data: netdot.dataclasses.site.Floor) -> netdot.dataclasses.site.Floor```

```
Add a Floor to this Site.

Returns:
    netdot.Floor: The created Floor.
```

### add_person

> ```add_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.Person```

```
Add a Person to this Site.

Returns:
    netdot.Person: The created Person.
```

### add_sitelink_as_farend

> ```add_sitelink_as_farend(self, data: netdot.dataclasses.site.SiteLink) -> netdot.dataclasses.site.SiteLink```

```
Add a SiteLink to this Site.

Returns:
    netdot.SiteLink: The created SiteLink.
```

### add_sitelink_as_nearend

> ```add_sitelink_as_nearend(self, data: netdot.dataclasses.site.SiteLink) -> netdot.dataclasses.site.SiteLink```

```
Add a SiteLink to this Site.

Returns:
    netdot.SiteLink: The created SiteLink.
```

### add_sitesubnet

> ```add_sitesubnet(self, data: netdot.dataclasses.site.SiteSubnet) -> netdot.dataclasses.site.SiteSubnet```

```
Add a SiteSubnet to this Site.

Returns:
    netdot.SiteSubnet: The created SiteSubnet.
```

### add_subnet

> ```add_subnet(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this Site (via SiteSubnet).

Args:
    data (netdot.IPBlock): The IPBlock to add to this Site.

Returns:
    netdot.SiteSubnet: The newly created SiteSubnet.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_availability

> ```load_availability(self) -> netdot.dataclasses.misc.Availability```

```
Load the Availability associated to this Site.

Returns:
    netdot.Availability: The full Availability object that is related to this Site.
```

### load_closets

> ```load_closets(self) -> List[ForwardRef('Closet')]```

```
Load all closets for this site.

> NOTE: This will make N+1 HTTP Requests (where N is the number of rooms in this site).
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this Site.

Returns:
    netdot.ContactList: The full ContactList object that is related to this Site.
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this Site.

Returns:
    List[netdot.Device]: All Devices related to this Site.
```

### load_entities

> ```load_entities(self) -> List[netdot.dataclasses.entity.Entity]```

```
Load the entities (Entities) associated to this Site.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of Entities associated to this Site).

You might prefer :func:`load_entitysites` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.Entity]: All Entities related to this Site.
```

### load_entitysites

> ```load_entitysites(self) -> List[netdot.dataclasses.entity.EntitySite]```

```
Load the EntitySites associated to this Site.

Returns:
    List[netdot.EntitySite]: All EntitySites related to this Site.
```

### load_farend_sitelinks

> ```load_farend_sitelinks(self) -> List[netdot.dataclasses.site.SiteLink]```

```
Load the SiteLinks associated to this Site.

Returns:
    List[netdot.SiteLink]: All SiteLinks related to this Site.
```

### load_floors

> ```load_floors(self) -> List[netdot.dataclasses.site.Floor]```

```
Load the Floors associated to this Site.

Returns:
    List[netdot.Floor]: All Floors related to this Site.
```

### load_nearend_sitelinks

> ```load_nearend_sitelinks(self) -> List[netdot.dataclasses.site.SiteLink]```

```
Load the SiteLinks associated to this Site.

Returns:
    List[netdot.SiteLink]: All SiteLinks related to this Site.
```

### load_persons

> ```load_persons(self) -> List[netdot.dataclasses.users.Person]```

```
Load the Persons associated to this Site.

Returns:
    List[netdot.Person]: All Persons related to this Site.
```

### load_rooms

> ```load_rooms(self) -> List[ForwardRef('Room')]```

```
Load all rooms for this site.
```

### load_sitesubnets

> ```load_sitesubnets(self) -> List[netdot.dataclasses.site.SiteSubnet]```

```
Load the SiteSubnets associated to this Site.

Returns:
    List[netdot.SiteSubnet]: All SiteSubnets related to this Site.
```

### load_subnets

> ```load_subnets(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the subnets (IPBlocks) associated to this Site.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of IPBlocks associated to this Site).

You might prefer :func:`load_sitesubnets` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this Site.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.SiteSubnet`

- site_xlink (int)
- subnet_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_site

> ```load_site(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this SiteSubnet.

Returns:
    netdot.Site: The full Site object that is related to this SiteSubnet.
```

### load_subnet

> ```load_subnet(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the IPBlock associated to this SiteSubnet.

Returns:
    netdot.IPBlock: The full IPBlock object that is related to this SiteSubnet.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Floor`

- info (str)
- level (str)
- site_xlink (int)
### add_room

> ```add_room(self, data: netdot.dataclasses.site.Room) -> netdot.dataclasses.site.Room```

```
Add a Room to this Floor.

Returns:
    netdot.Room: The created Room.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_rooms

> ```load_rooms(self) -> List[netdot.dataclasses.site.Room]```

```
Load the Rooms associated to this Floor.

Returns:
    List[netdot.Room]: All Rooms related to this Floor.
```

### load_site

> ```load_site(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this Floor.

Returns:
    netdot.Site: The full Site object that is related to this Floor.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Room`

- floor_xlink (int)
- name (str)
### add_closet

> ```add_closet(self, data: netdot.dataclasses.site.Closet) -> netdot.dataclasses.site.Closet```

```
Add a Closet to this Room.

Returns:
    netdot.Closet: The created Closet.
```

### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this Room.

Returns:
    netdot.Device: The created Device.
```

### add_horizontalcable

> ```add_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCable```

```
Add a HorizontalCable to this Room.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.
```

### add_person

> ```add_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.Person```

```
Add a Person to this Room.

Returns:
    netdot.Person: The created Person.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_closets

> ```load_closets(self) -> List[netdot.dataclasses.site.Closet]```

```
Load the Closets associated to this Room.

Returns:
    List[netdot.Closet]: All Closets related to this Room.
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this Room.

Returns:
    List[netdot.Device]: All Devices related to this Room.
```

### load_floor

> ```load_floor(self) -> netdot.dataclasses.site.Floor```

```
Load the Floor associated to this Room.

Returns:
    netdot.Floor: The full Floor object that is related to this Room.
```

### load_horizontalcables

> ```load_horizontalcables(self) -> List[netdot.dataclasses.cables.HorizontalCable]```

```
Load the HorizontalCables associated to this Room.

Returns:
    List[netdot.HorizontalCable]: All HorizontalCables related to this Room.
```

### load_persons

> ```load_persons(self) -> List[netdot.dataclasses.users.Person]```

```
Load the Persons associated to this Room.

Returns:
    List[netdot.Person]: All Persons related to this Room.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Closet`

- access_key_type (str)
- asbestos_tiles (bool) (Default: False)
- catv_taps (str)
- converted_patch_panels (bool) (Default: False)
- dimensions (str)
- ground_buss (bool) (Default: False)
- hvac_type (str)
- info (str)
- name (str)
- room_xlink (int)
- ot_blocks (str)
- outlets (str)
- pair_count (str)
- patch_panels (str)
- rack_type (str)
- racks (str)
- ru_avail (str)
- shared_with (str)
- ss_blocks (str)
- work_needed (str)
### add_backbonecable_as_end_closet

> ```add_backbonecable_as_end_closet(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCable```

```
Add a BackboneCable to this Closet.

Returns:
    netdot.BackboneCable: The created BackboneCable.
```

### add_backbonecable_as_start_closet

> ```add_backbonecable_as_start_closet(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCable```

```
Add a BackboneCable to this Closet.

Returns:
    netdot.BackboneCable: The created BackboneCable.
```

### add_horizontalcable

> ```add_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCable```

```
Add a HorizontalCable to this Closet.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_end_closet_backbonecables

> ```load_end_closet_backbonecables(self) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Load the BackboneCables associated to this Closet.

Returns:
    List[netdot.BackboneCable]: All BackboneCables related to this Closet.
```

### load_horizontalcables

> ```load_horizontalcables(self) -> List[netdot.dataclasses.cables.HorizontalCable]```

```
Load the HorizontalCables associated to this Closet.

Returns:
    List[netdot.HorizontalCable]: All HorizontalCables related to this Closet.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the Room associated to this Closet.

Returns:
    netdot.Room: The full Room object that is related to this Closet.
```

### load_start_closet_backbonecables

> ```load_start_closet_backbonecables(self) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Load the BackboneCables associated to this Closet.

Returns:
    List[netdot.BackboneCable]: All BackboneCables related to this Closet.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.SiteLink`

- entity_xlink (int)
- farend_xlink (int)
- info (str)
- name (str)
- nearend_xlink (int)
### add_circuit

> ```add_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.Circuit```

```
Add a Circuit to this SiteLink.

Returns:
    netdot.Circuit: The created Circuit.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_circuits

> ```load_circuits(self) -> List[netdot.dataclasses.cables.Circuit]```

```
Load the Circuits associated to this SiteLink.

Returns:
    List[netdot.Circuit]: All Circuits related to this SiteLink.
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this SiteLink.

Returns:
    netdot.Entity: The full Entity object that is related to this SiteLink.
```

### load_farend

> ```load_farend(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this SiteLink.

Returns:
    netdot.Site: The full Site object that is related to this SiteLink.
```

### load_nearend

> ```load_nearend(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this SiteLink.

Returns:
    netdot.Site: The full Site object that is related to this SiteLink.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.VLAN`

- description (str)
- info (str)
- name (str)
- vid (int)
- vlangroup_xlink (int)
### add_interfacevlan

> ```add_interfacevlan(self, data: netdot.dataclasses.interface.InterfaceVLAN) -> netdot.dataclasses.interface.InterfaceVLAN```

```
Add a InterfaceVLAN to this VLAN.

Returns:
    netdot.InterfaceVLAN: The created InterfaceVLAN.
```

### add_ipblock

> ```add_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlock```

```
Add a IPBlock to this VLAN.

Returns:
    netdot.IPBlock: The created IPBlock.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_interfacevlans

> ```load_interfacevlans(self) -> List[netdot.dataclasses.interface.InterfaceVLAN]```

```
Load the InterfaceVLANs associated to this VLAN.

Returns:
    List[netdot.InterfaceVLAN]: All InterfaceVLANs related to this VLAN.
```

### load_ipblocks

> ```load_ipblocks(self) -> List[netdot.dataclasses.ipblock.IPBlock]```

```
Load the IPBlocks associated to this VLAN.

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this VLAN.
```

### load_vlangroup

> ```load_vlangroup(self) -> netdot.dataclasses.vlan.VLANGroup```

```
Load the VLANGroup associated to this VLAN.

Returns:
    netdot.VLANGroup: The full VLANGroup object that is related to this VLAN.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.VLANGroup`

- description (str)
- end_vid (int)
- info (str)
- name (str)
- start_vid (int)
### add_vlan

> ```add_vlan(self, data: netdot.dataclasses.vlan.VLAN) -> netdot.dataclasses.vlan.VLAN```

```
Add a VLAN to this VLANGroup.

Returns:
    netdot.VLAN: The created VLAN.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_vlans

> ```load_vlans(self) -> List[netdot.dataclasses.vlan.VLAN]```

```
Load the VLANs associated to this VLANGroup.

Returns:
    List[netdot.VLAN]: All VLANs related to this VLANGroup.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.PhysAddr`

- address (MACAddress)
- static (bool) (Default: False)
- first_seen (DateTime)
- last_seen (DateTime)
### add_asset

> ```add_asset(self, data: netdot.dataclasses.asset.Asset) -> netdot.dataclasses.asset.Asset```

```
Add a Asset to this PhysAddr.

Returns:
    netdot.Asset: The created Asset.
```

### add_dhcpscope

> ```add_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScope```

```
Add a DHCPScope to this PhysAddr.

Returns:
    netdot.DHCPScope: The created DHCPScope.
```

### add_fwtableentry

> ```add_fwtableentry(self, data: netdot.dataclasses.fwtable.FWTableEntry) -> netdot.dataclasses.fwtable.FWTableEntry```

```
Add a FWTableEntry to this PhysAddr.

Returns:
    netdot.FWTableEntry: The created FWTableEntry.
```

### add_interface

> ```add_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.Interface```

```
Add a Interface to this PhysAddr.

Returns:
    netdot.Interface: The created Interface.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_assets

> ```load_assets(self) -> List[netdot.dataclasses.asset.Asset]```

```
Load the Assets associated to this PhysAddr.

Returns:
    List[netdot.Asset]: All Assets related to this PhysAddr.
```

### load_dhcpscopes

> ```load_dhcpscopes(self) -> List[netdot.dataclasses.dhcp.DHCPScope]```

```
Load the DHCPScopes associated to this PhysAddr.

Returns:
    List[netdot.DHCPScope]: All DHCPScopes related to this PhysAddr.
```

### load_fwtableentries

> ```load_fwtableentries(self) -> List[netdot.dataclasses.fwtable.FWTableEntry]```

```
Load the FWTableEntries associated to this PhysAddr.

Returns:
    List[netdot.FWTableEntry]: All FWTableEntries related to this PhysAddr.
```

### load_interfaces

> ```load_interfaces(self) -> List[netdot.dataclasses.interface.Interface]```

```
Load the Interfaces associated to this PhysAddr.

Returns:
    List[netdot.Interface]: All Interfaces related to this PhysAddr.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.PhysAddrAttrName`

- info (str)
- name (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.PhysAddrAttr`

- name (int)
- physaddr (int)
- value (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.FWTable`

- device_xlink (int)
- tstamp (DateTime)
### add_fwtableentry

> ```add_fwtableentry(self, data: netdot.dataclasses.fwtable.FWTableEntry) -> netdot.dataclasses.fwtable.FWTableEntry```

```
Add a FWTableEntry to this FWTable.

Returns:
    netdot.FWTableEntry: The created FWTableEntry.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the Device associated to this FWTable.

Returns:
    netdot.Device: The full Device object that is related to this FWTable.
```

### load_fwtableentries

> ```load_fwtableentries(self) -> List[netdot.dataclasses.fwtable.FWTableEntry]```

```
Load the FWTableEntries associated to this FWTable.

Returns:
    List[netdot.FWTableEntry]: All FWTableEntries related to this FWTable.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.FWTableEntry`

- fwtable_xlink (int)
- interface_xlink (int)
- physaddr_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### infer_timestamp

> ```infer_timestamp(self) -> datetime.datetime```

```
Infer the timestamp of this FWTableEntry (based on the 'fwtable' string returned to us by Netdot API).

Returns:
    datetime: The inferred timestamp.

Raises:
    ValueError: If unable to infer the timestamp.
```

### load_fwtable

> ```load_fwtable(self) -> netdot.dataclasses.fwtable.FWTable```

```
Load the FWTable associated to this FWTableEntry.

Returns:
    netdot.FWTable: The full FWTable object that is related to this FWTableEntry.
```

### load_interface

> ```load_interface(self) -> netdot.dataclasses.interface.Interface```

```
Load the Interface associated to this FWTableEntry.

Returns:
    netdot.Interface: The full Interface object that is related to this FWTableEntry.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the PhysAddr associated to this FWTableEntry.

Returns:
    netdot.PhysAddr: The full PhysAddr object that is related to this FWTableEntry.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.ContactList`

- info (str)
- name (str)
### add_accessright

> ```add_accessright(self, data: netdot.dataclasses.users.AccessRight) -> netdot.dataclasses.users.AccessRight```

```
Add a AccessRight to this ContactList (via GroupRight).

Args:
    data (netdot.AccessRight): The AccessRight to add to this ContactList.

Returns:
    netdot.GroupRight: The newly created GroupRight.
```

### add_bgppeering

> ```add_bgppeering(self, data: netdot.dataclasses.bgp.BGPPeering) -> netdot.dataclasses.bgp.BGPPeering```

```
Add a BGPPeering to this ContactList.

Returns:
    netdot.BGPPeering: The created BGPPeering.
```

### add_contact

> ```add_contact(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.Contact```

```
Add a Contact to this ContactList.

Returns:
    netdot.Contact: The created Contact.
```

### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this ContactList (via DeviceContacts).

Args:
    data (netdot.Device): The Device to add to this ContactList.

Returns:
    netdot.DeviceContacts: The newly created DeviceContacts.
```

### add_devicecontacts

> ```add_devicecontacts(self, data: netdot.dataclasses.device.DeviceContacts) -> netdot.dataclasses.device.DeviceContacts```

```
Add a DeviceContacts to this ContactList.

Returns:
    netdot.DeviceContacts: The created DeviceContacts.
```

### add_entity

> ```add_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.Entity```

```
Add a Entity to this ContactList.

Returns:
    netdot.Entity: The created Entity.
```

### add_groupright

> ```add_groupright(self, data: netdot.dataclasses.users.GroupRight) -> netdot.dataclasses.users.GroupRight```

```
Add a GroupRight to this ContactList.

Returns:
    netdot.GroupRight: The created GroupRight.
```

### add_horizontalcable

> ```add_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCable```

```
Add a HorizontalCable to this ContactList.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.
```

### add_interface

> ```add_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.Interface```

```
Add a Interface to this ContactList.

Returns:
    netdot.Interface: The created Interface.
```

### add_ipservice

> ```add_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPService```

```
Add a IPService to this ContactList.

Returns:
    netdot.IPService: The created IPService.
```

### add_site

> ```add_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.Site```

```
Add a Site to this ContactList.

Returns:
    netdot.Site: The created Site.
```

### add_zone

> ```add_zone(self, data: netdot.dataclasses.dns.Zone) -> netdot.dataclasses.dns.Zone```

```
Add a Zone to this ContactList.

Returns:
    netdot.Zone: The created Zone.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_accessrights

> ```load_accessrights(self) -> List[netdot.dataclasses.users.AccessRight]```

```
Load the accessrights (AccessRights) associated to this ContactList.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of AccessRights associated to this ContactList).

You might prefer :func:`load_grouprights` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.AccessRight]: All AccessRights related to this ContactList.
```

### load_bgppeerings

> ```load_bgppeerings(self) -> List[netdot.dataclasses.bgp.BGPPeering]```

```
Load the BGPPeerings associated to this ContactList.

Returns:
    List[netdot.BGPPeering]: All BGPPeerings related to this ContactList.
```

### load_contacts

> ```load_contacts(self) -> List[netdot.dataclasses.users.Contact]```

```
Load the Contacts associated to this ContactList.

Returns:
    List[netdot.Contact]: All Contacts related to this ContactList.
```

### load_devicecontacts

> ```load_devicecontacts(self) -> List[netdot.dataclasses.device.DeviceContacts]```

```
Load the DeviceContacts associated to this ContactList.

Returns:
    List[netdot.DeviceContacts]: All DeviceContacts related to this ContactList.
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the devices (Devices) associated to this ContactList.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of Devices associated to this ContactList).

You might prefer :func:`load_devicecontacts` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.Device]: All Devices related to this ContactList.
```

### load_entities

> ```load_entities(self) -> List[netdot.dataclasses.entity.Entity]```

```
Load the Entities associated to this ContactList.

Returns:
    List[netdot.Entity]: All Entities related to this ContactList.
```

### load_grouprights

> ```load_grouprights(self) -> List[netdot.dataclasses.users.GroupRight]```

```
Load the GroupRights associated to this ContactList.

Returns:
    List[netdot.GroupRight]: All GroupRights related to this ContactList.
```

### load_horizontalcables

> ```load_horizontalcables(self) -> List[netdot.dataclasses.cables.HorizontalCable]```

```
Load the HorizontalCables associated to this ContactList.

Returns:
    List[netdot.HorizontalCable]: All HorizontalCables related to this ContactList.
```

### load_interfaces

> ```load_interfaces(self) -> List[netdot.dataclasses.interface.Interface]```

```
Load the Interfaces associated to this ContactList.

Returns:
    List[netdot.Interface]: All Interfaces related to this ContactList.
```

### load_ipservices

> ```load_ipservices(self) -> List[netdot.dataclasses.ipblock.IPService]```

```
Load the IPServices associated to this ContactList.

Returns:
    List[netdot.IPService]: All IPServices related to this ContactList.
```

### load_sites

> ```load_sites(self) -> List[netdot.dataclasses.site.Site]```

```
Load the Sites associated to this ContactList.

Returns:
    List[netdot.Site]: All Sites related to this ContactList.
```

### load_zones

> ```load_zones(self) -> List[netdot.dataclasses.dns.Zone]```

```
Load the Zones associated to this ContactList.

Returns:
    List[netdot.Zone]: All Zones related to this ContactList.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.ContactType`

- info (str)
- name (str)
### add_contact

> ```add_contact(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.Contact```

```
Add a Contact to this ContactType.

Returns:
    netdot.Contact: The created Contact.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contacts

> ```load_contacts(self) -> List[netdot.dataclasses.users.Contact]```

```
Load the Contacts associated to this ContactType.

Returns:
    List[netdot.Contact]: All Contacts related to this ContactType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.AccessRight`

- access (str)
- object_class (str)
- object_id (int)
### add_contactlist

> ```add_contactlist(self, data: netdot.dataclasses.users.ContactList) -> netdot.dataclasses.users.ContactList```

```
Add a ContactList to this AccessRight (via GroupRight).

Args:
    data (netdot.ContactList): The ContactList to add to this AccessRight.

Returns:
    netdot.GroupRight: The newly created GroupRight.
```

### add_groupright

> ```add_groupright(self, data: netdot.dataclasses.users.GroupRight) -> netdot.dataclasses.users.GroupRight```

```
Add a GroupRight to this AccessRight.

Returns:
    netdot.GroupRight: The created GroupRight.
```

### add_person

> ```add_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.Person```

```
Add a Person to this AccessRight (via UserRight).

Args:
    data (netdot.Person): The Person to add to this AccessRight.

Returns:
    netdot.UserRight: The newly created UserRight.
```

### add_userright

> ```add_userright(self, data: netdot.dataclasses.users.UserRight) -> netdot.dataclasses.users.UserRight```

```
Add a UserRight to this AccessRight.

Returns:
    netdot.UserRight: The created UserRight.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlists

> ```load_contactlists(self) -> List[netdot.dataclasses.users.ContactList]```

```
Load the contactlists (ContactLists) associated to this AccessRight.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of ContactLists associated to this AccessRight).

You might prefer :func:`load_grouprights` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.ContactList]: All ContactLists related to this AccessRight.
```

### load_grouprights

> ```load_grouprights(self) -> List[netdot.dataclasses.users.GroupRight]```

```
Load the GroupRights associated to this AccessRight.

Returns:
    List[netdot.GroupRight]: All GroupRights related to this AccessRight.
```

### load_persons

> ```load_persons(self) -> List[netdot.dataclasses.users.Person]```

```
Load the persons (Persons) associated to this AccessRight.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of Persons associated to this AccessRight).

You might prefer :func:`load_userrights` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.Person]: All Persons related to this AccessRight.
```

### load_userrights

> ```load_userrights(self) -> List[netdot.dataclasses.users.UserRight]```

```
Load the UserRights associated to this AccessRight.

Returns:
    List[netdot.UserRight]: All UserRights related to this AccessRight.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.GroupRight`

- accessright_xlink (int)
- contactlist_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_accessright

> ```load_accessright(self) -> netdot.dataclasses.users.AccessRight```

```
Load the AccessRight associated to this GroupRight.

Returns:
    netdot.AccessRight: The full AccessRight object that is related to this GroupRight.
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this GroupRight.

Returns:
    netdot.ContactList: The full ContactList object that is related to this GroupRight.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Audit`

- fields (str)
- label (str)
- object_id (int)
- operation (str)
- tablename (str)
- tstamp (DateTime)
- username (str)
- vals (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.UserType`

- info (str)
- name (str)
### add_person

> ```add_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.Person```

```
Add a Person to this UserType.

Returns:
    netdot.Person: The created Person.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_persons

> ```load_persons(self) -> List[netdot.dataclasses.users.Person]```

```
Load the Persons associated to this UserType.

Returns:
    List[netdot.Person]: All Persons related to this UserType.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Person`

- aliases (str)
- cell (str)
- email (str)
- emailpager (str)
- entity_xlink (int)
- extension (int)
- fax (str)
- firstname (str)
- home (str)
- info (str)
- lastname (str)
- location_xlink (int)
- office (str)
- pager (str)
- position (str)
- room_xlink (int)
- user_type_xlink (int)
- username (str)
- password (str)
### add_accessright

> ```add_accessright(self, data: netdot.dataclasses.users.AccessRight) -> netdot.dataclasses.users.AccessRight```

```
Add a AccessRight to this Person (via UserRight).

Args:
    data (netdot.AccessRight): The AccessRight to add to this Person.

Returns:
    netdot.UserRight: The newly created UserRight.
```

### add_contact

> ```add_contact(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.Contact```

```
Add a Contact to this Person.

Returns:
    netdot.Contact: The created Contact.
```

### add_userright

> ```add_userright(self, data: netdot.dataclasses.users.UserRight) -> netdot.dataclasses.users.UserRight```

```
Add a UserRight to this Person.

Returns:
    netdot.UserRight: The created UserRight.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_accessrights

> ```load_accessrights(self) -> List[netdot.dataclasses.users.AccessRight]```

```
Load the accessrights (AccessRights) associated to this Person.

> NOTE: This will make `N+1` HTTP Requests (where N is the number of AccessRights associated to this Person).

You might prefer :func:`load_userrights` over this method, if you want to load the many-to-many objects themselves. (and not make N+1 HTTP Requests)

Returns:
    List[netdot.AccessRight]: All AccessRights related to this Person.
```

### load_contacts

> ```load_contacts(self) -> List[netdot.dataclasses.users.Contact]```

```
Load the Contacts associated to this Person.

Returns:
    List[netdot.Contact]: All Contacts related to this Person.
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this Person.

Returns:
    netdot.Entity: The full Entity object that is related to this Person.
```

### load_location

> ```load_location(self) -> netdot.dataclasses.site.Site```

```
Load the Site associated to this Person.

Returns:
    netdot.Site: The full Site object that is related to this Person.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the Room associated to this Person.

Returns:
    netdot.Room: The full Room object that is related to this Person.
```

### load_user_type

> ```load_user_type(self) -> netdot.dataclasses.users.UserType```

```
Load the UserType associated to this Person.

Returns:
    netdot.UserType: The full UserType object that is related to this Person.
```

### load_userrights

> ```load_userrights(self) -> List[netdot.dataclasses.users.UserRight]```

```
Load the UserRights associated to this Person.

Returns:
    List[netdot.UserRight]: All UserRights related to this Person.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Contact`

- contactlist_xlink (int)
- contacttype_xlink (int)
- escalation_level (int)
- info (str)
- notify_email_xlink (int)
- notify_pager_xlink (int)
- notify_voice_xlink (int)
- person_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the ContactList associated to this Contact.

Returns:
    netdot.ContactList: The full ContactList object that is related to this Contact.
```

### load_contacttype

> ```load_contacttype(self) -> netdot.dataclasses.users.ContactType```

```
Load the ContactType associated to this Contact.

Returns:
    netdot.ContactType: The full ContactType object that is related to this Contact.
```

### load_notify_email

> ```load_notify_email(self) -> netdot.dataclasses.misc.Availability```

```
Load the Availability associated to this Contact.

Returns:
    netdot.Availability: The full Availability object that is related to this Contact.
```

### load_notify_pager

> ```load_notify_pager(self) -> netdot.dataclasses.misc.Availability```

```
Load the Availability associated to this Contact.

Returns:
    netdot.Availability: The full Availability object that is related to this Contact.
```

### load_notify_voice

> ```load_notify_voice(self) -> netdot.dataclasses.misc.Availability```

```
Load the Availability associated to this Contact.

Returns:
    netdot.Availability: The full Availability object that is related to this Contact.
```

### load_person

> ```load_person(self) -> netdot.dataclasses.users.Person```

```
Load the Person associated to this Contact.

Returns:
    netdot.Person: The full Person object that is related to this Contact.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.UserRight`

- accessright_xlink (int)
- person_xlink (int)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_accessright

> ```load_accessright(self) -> netdot.dataclasses.users.AccessRight```

```
Load the AccessRight associated to this UserRight.

Returns:
    netdot.AccessRight: The full AccessRight object that is related to this UserRight.
```

### load_person

> ```load_person(self) -> netdot.dataclasses.users.Person```

```
Load the Person associated to this UserRight.

Returns:
    netdot.Person: The full Person object that is related to this UserRight.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.Availability`

- info (str)
- name (str)
### add_contact_as_notify_email

> ```add_contact_as_notify_email(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.Contact```

```
Add a Contact to this Availability.

Returns:
    netdot.Contact: The created Contact.
```

### add_contact_as_notify_pager

> ```add_contact_as_notify_pager(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.Contact```

```
Add a Contact to this Availability.

Returns:
    netdot.Contact: The created Contact.
```

### add_contact_as_notify_voice

> ```add_contact_as_notify_voice(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.Contact```

```
Add a Contact to this Availability.

Returns:
    netdot.Contact: The created Contact.
```

### add_entity

> ```add_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.Entity```

```
Add a Entity to this Availability.

Returns:
    netdot.Entity: The created Entity.
```

### add_site

> ```add_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.Site```

```
Add a Site to this Availability.

Returns:
    netdot.Site: The created Site.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_entities

> ```load_entities(self) -> List[netdot.dataclasses.entity.Entity]```

```
Load the Entities associated to this Availability.

Returns:
    List[netdot.Entity]: All Entities related to this Availability.
```

### load_notify_email_contacts

> ```load_notify_email_contacts(self) -> List[netdot.dataclasses.users.Contact]```

```
Load the Contacts associated to this Availability.

Returns:
    List[netdot.Contact]: All Contacts related to this Availability.
```

### load_notify_pager_contacts

> ```load_notify_pager_contacts(self) -> List[netdot.dataclasses.users.Contact]```

```
Load the Contacts associated to this Availability.

Returns:
    List[netdot.Contact]: All Contacts related to this Availability.
```

### load_notify_voice_contacts

> ```load_notify_voice_contacts(self) -> List[netdot.dataclasses.users.Contact]```

```
Load the Contacts associated to this Availability.

Returns:
    List[netdot.Contact]: All Contacts related to this Availability.
```

### load_sites

> ```load_sites(self) -> List[netdot.dataclasses.site.Site]```

```
Load the Sites associated to this Availability.

Returns:
    List[netdot.Site]: All Sites related to this Availability.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.HostAudit`

- tstamp (DateTime)
- zone (str)
- scope (str)
- pending (bool) (Default: False)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.MaintContract`

- info (str)
- number (str)
- provider_xlink (int)
### add_asset

> ```add_asset(self, data: netdot.dataclasses.asset.Asset) -> netdot.dataclasses.asset.Asset```

```
Add a Asset to this MaintContract.

Returns:
    netdot.Asset: The created Asset.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_assets

> ```load_assets(self) -> List[netdot.dataclasses.asset.Asset]```

```
Load the Assets associated to this MaintContract.

Returns:
    List[netdot.Asset]: All Assets related to this MaintContract.
```

### load_provider

> ```load_provider(self) -> netdot.dataclasses.entity.Entity```

```
Load the Entity associated to this MaintContract.

Returns:
    netdot.Entity: The full Entity object that is related to this MaintContract.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.MonitorStatus`

- info (str)
- name (str)
### add_device

> ```add_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.Device```

```
Add a Device to this MonitorStatus.

Returns:
    netdot.Device: The created Device.
```

### add_interface

> ```add_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.Interface```

```
Add a Interface to this MonitorStatus.

Returns:
    netdot.Interface: The created Interface.
```

### add_ipservice

> ```add_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPService```

```
Add a IPService to this MonitorStatus.

Returns:
    netdot.IPService: The created IPService.
```

### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this MonitorStatus.

Returns:
    List[netdot.Device]: All Devices related to this MonitorStatus.
```

### load_interfaces

> ```load_interfaces(self) -> List[netdot.dataclasses.interface.Interface]```

```
Load the Interfaces associated to this MonitorStatus.

Returns:
    List[netdot.Interface]: All Interfaces related to this MonitorStatus.
```

### load_ipservices

> ```load_ipservices(self) -> List[netdot.dataclasses.ipblock.IPService]```

```
Load the IPServices associated to this MonitorStatus.

Returns:
    List[netdot.IPService]: All IPServices related to this MonitorStatus.
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.SavedQueries`

- name (str)
- querytext (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```

## class `netdot.SchemaInfo`

- info (str)
- version (str)
### create

> ```create(self) -> 'NetdotAPIDataclass'```

```
Create this object in Netdot. (wrapper around :func:`create_or_update()`)

Raises:
    ValueError: If trying to create an object that already has an `id`.
```

### create_or_update

> ```create_or_update(self: 'NetdotAPIDataclass')```

```
Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    HTTPError: if the object cannot be created for any reason. As an example, expect a generic HTTP 400 when: 
      * an object breaks 'uniqueness' rules (Ex. 2 Sites named "Test"),
      * an object is missing required fields (Ex. a Person without a `lastname`),
      * an object is improperly formatted (Ex. a Device with a `date_installed` that is not a datetime),
```

### delete

> ```delete(self, **kwargs)```

```
Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)
```

### update

> ```update(self: 'NetdotAPIDataclass') -> 'NetdotAPIDataclass'```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```


# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

> Notice: Major version zero (0.y.z) is for initial development. Anything MAY change at any time.
> This public API should **not** be considered stable.

> ⚠ Disclaimer: From 0.2.0 onward, this API wrapper does not ensure support for the [de facto Open Source version of NetDot (GitHub)](https://github.com/cvicente/Netdot).

## [Unreleased]

* After calling `save_changes`, `show_changes` does not show any of the completed tasks.
    * WORKAROUND: Calling `nd_repo.proposed_changes.completed_as_list()` will give the completed tasks.
* There are still 2 Python Dataclasses that just need to be implemented:
    - [ ] ARPCache
    - [ ] ARPCacheEntry 
* Retrieve/update various data types that contain **binary blobs** via REST API:
    - [ ] DataCaches
    - [ ] ClosetPictures
    - [ ] SitePictures
    - [ ] FloorPictures
* UnitOfWork has `dry_run` and `changes_as_table`, but does not have any `save_as` methods.
    * `save_as_excel` would be great to save all proposed changes as a workbook.
    * `save_as_csv` would be great to save all proposed changes as a set of CSV files.
    * `save_as` would be great to use Python's `pickle` serializer (paired with a `load` method to load it back up).


## [0.4.0]

### Added

* Generated some [API documentation](#netdot-python-api-generated-documentation) for all the generated code.
* Dry Runs!
    * See ['Example Plan and Create a New Netdot Site" in the User Guide](#example-plan-and-create-a-new-netdot-site)
    * Automatically set up a UnitOfWork when calling `netdot.connect`
        > Bypass 'dry runs' feature via `netdot.connect_now` (or after the fact using `disable_propose_changes`)
    * Make changes just like normal (except calls to `create` will return objects **without** `id` populated)
    * Show any proposed changes using `show_changes`
        * Use `show_chages(terse=False)` to see full output.
        * Use `show_changes_as_tables` to see output as tables (which also supports the `terse=False` option)
    * Save those changes using `save_changes`
        * Asks for user confirmation for any DELETEs (unless `confirm=False` option is used)
* Implemented Python Dataclasses for *most* all of the Netdot Database schema
    * All except the four 'binary blob' containing data types, listed in [Unreleased](#unreleased).
* Basic methods on each NetdotAPIDataclass:
    * `create_or_update`: Create or update this object in Netdot.
    * `create`: *Thin wrapper around `create_or_update`.*
    * `update`: *Thin wrapper around `create_or_update`.*
    * `delete`: Delete this object in Netdot.
        * Asks for user confirmation (unless `confirm=False` option is used)
* Generate methods on each NetdotAPIDataclass:
    * `add_*` methods for 1-to-many relationships.
        * Examples: `site.add_device` or `site.add_sitelink_as_farend`
    * `add_*` methods for many-to-many relationships.
        * Examples: `site.add_subnet` (and the more obscure `site.add_sitesubnet`)
    * `load_*` methods for 1-to-many relationships.
        * Examples: `site.load_devices`
    * `load_*` methods for many-to-many relationships.
        * Examples: `site.load_subnets`
* [UNTESTED] Log a warning whenever 'Carp::croak' is returned in HTTP response.


### Changed

* Fix pluralization for various methods in [public API](#netdot-python-api-generated-documentation).
* Simplified NetdotAPIDataclass property setters (by overwriting `__setattr__` directly for NetdotAPIDataclass).
    * ❌ Old way:
    ```
    netdot.Floor(...).with_site(site)
    ```
    * ✅ New way, via `__init__`:
    ```
    floor = netdot.Floor(..., site=site, ...)
    ```
  * ✅ New way, via assignment operator (`=`):
    ```
    floor = netdot.Floor(...)
    floor.site = site
    ```

### Removed

* No longer generate the `with_*` and `set_*` methods for NetdotAPIDataclass.
* Do not log a warning when 'info' or 'ttl' are absent from HTTP Response (they are VERY optional)
    * Search for `inconsistent_and_ignorable_fields` to learn more
* Removed old `netdot.Connect` class entirely



## [0.3.2]

* Enable looking up a DNS Resource Record (RR) by address, using `repo.get_rr_by_address()`

## [0.3.1]

* Speed up `find_edge_port`.
  * HTTP requests are parallelized via multithreading where possible.

## [0.3.0]

> ⚠ Breaking Backwards Compatibility: Several `netdot.Repository` methods are renamed, as discussed below.

* Add `Repository.find_edge_port(mac_address)` method.
  * This requires a lot of HTTP requests since we do not have the ability to run arbitrary database queries (SQL JOIN behavior is unavailable via RESTful interface).
* Wired up the following netdot.dataclasses:
  * `ForwardingTable`
  * `ForwardingTableEntry`
  * `PhysAddr`
* Renamed several generated methods to end in "ies" instead of "ys" when pluralized.
* Dropping Python 3.6 and 3.7 compatibility (required to use [hatch](https://github.com/pypa/hatch))

## [0.2.6]

* Fix typo in `MACAddress:format` method argument: "delimeter" becomes "delimiter"
  * Additionally, force keyword arguments for the `format`using Python 3 feature.

## [0.2.5]

* In `netdot.Client` the base `delete(..., id)` method can now accept an `int`.
  * Before, it only accepted `str`.

## [0.2.4]

* Gracefully handle response from HTTP Delete requests when possible.
  * Delete seems to return 'empty' (a couple of newlines actually) on success.

## [0.2.3]

* Enable a `replace` function for all `netdot.dataclassess`
  * This makes it easier to do 'update' like operations using this library.

## [0.2.2]

* Fix for REGRESSION: The `post` method of `netdot.Client` does not work.
  * Debugged using a simple automated test (captured by a PyVCR Cassette for reproducibility)

## [0.2.1]

> 🐛 REGRESSION: The `post` method of `netdot.Client` does not work!

* Fix for REGRESSION: The `netdot.Client.Connection` class is missing!
  * Re-added `Connection` directly to client.py for now.
  * Aliased `netdot.client` module to also be available as it was formerly named, `netdot.Client` (pep8 suggests lowercase module names instead of CamelCase).
    * Using `__all__` in "netdot/\_\_init\_\_.py"

## [0.2.0]

> 🐛 REGRESSION: The `netdot.Client.Connection` class is MISSING!

> ⚠ We have not ensured support for the [de facto Open Source version of NetDot (GitHub)](https://github.com/cvicente/Netdot).

* Introducing a new layer of abstraction -- a Repository and many Python dataclasses.
  * See more info in the [User Guide](user-guide.md)
* Provide technical documentation in "docs/" directory (following NTS's standards).
  * See [the README.md in the &#34;docs/&#34; directory](README.md) for an overview.

## [0.1.0]

* Provide Python Netdot Client, as originally authored by Francisco Gray.
