Metadata-Version: 2.1
Name: netdot
Version: 0.4.0rc5
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 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](./generated-api-docs.md)).
> Using the Repository interactively at the interpreter allows using features like **tab completion** to quickly learn what methods are available.

<a id=connecting-in-the-interpreter-netdotconnect></a>

## 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" takes a LONG time, and includes assumptions that can result in inaccurate results [^find_edge_port].

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-get-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'

To load up more information about the jack, call `load_jack`

    >>> 

[^find_edge_port]: **⚠ 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)
> ```

<a id='example-plan-and-create-a-new-netdot-site'></a> 

### 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.
We will create all these objects. 

First, within a dry run, we will propose the new site:

    >>> site =  nd_repo.create_new(netdot.Site(name='Test Site'))
    Will CREATE Site: Site(id=None, name='Test Site', aliases=None, availab...

Then, using that returned `site` Python object, we will call `site.add_floor`:

    >>> floor = site.add_floor(netdot.Floor(level='Test Floor'))
    Will CREATE Floor: Floor(id=None, info=None, level='Test Floor', site=S...

Then, using that returned `floor` Python object, we will call `floor.add_room`:

    >>> room1 = floor.add_room(netdot.Room(name='Test Room 1'))
    Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='...
    >>> room2 = floor.add_room(netdot.Room(name='Test Room 2'))
    Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='...
    >>> room3 = floor.add_room(netdot.Room(name='Test Room 3'))
    Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='...

And finally, we can call `room.add_closet` on any of our `room[123]` objects.

    >>> closet = room3.add_closet(netdot.Closet(name='Test Closet 1'))
    Will CREATE Closet: Closet(id=None, access_key_type=None, asbestos_tile...

Ensure that the proposed changes look good via `show_changes`:

```python
>>> nd_repo.show_changes()
 1. Will CREATE Site: Site(id=None, name='Test Site', aliases=None, availabi...
 2. Will CREATE Floor: Floor(id=None, info=None, level='Test Floor', site=Si...
 3. Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='T...
 4. Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='T...
 5. Will CREATE Room: Room(id=None, floor=Floor(id=None, info=None, level='T...
 6. Will CREATE Closet: Closet(id=None, access_key_type=None, asbestos_tiles...
```

And finally, save the changes to Netdot.

    >>> nd_repo.save_changes()
    100%|████████████████████████████████████████| 6/6 [00:00<00:00,  9.26it/s]


## Automation Examples

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

### 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)

1. 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]

2. 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 ]

3. Then, it is time to apply the updates locally to the repository's "proposed changes".

    >>> for updated_site in updated_sites:
    ...     updated_site.update()

4. Review all the proposed changes using `show_changes` ()
> Use `show_changes(terse=False)` to see full output.

    >>> nd_repo.show_changes()

> ℹ You can optionally save changes as CSV files as well using `save_as_CSVs`

5. Finally, save the changes back to Netdot using `save_changes`.

    >>> nd_repo.save_changes()

<a name="code-sample-for-example-update-aliases-of-sites-in-netdot"></a>

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

The full code sample is provided here.

    import netdot

    nd_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()
    nd_repo.save_changes()

<a name="multithreading-for-parallelizing-http-get-requests"></a>

## 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)](#connecting-in-the-interpreter-netdotconnect) as well.
> 
>     >>> repo = netdot.connect(threads=4)
# 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_CSVs` 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

* Features for this tool are controlled using Environment Variables, or by directly modifying `netdot.defaults`:
    > ℹ Use `netdot.defaults.help()` to see more info, or see [API Environment Variables documentation](#netdot-python-api-environment-variables)
* Generated some [API documentation](./generated-api-docs.md) for all the generated code.
* Support for '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` or `show_changes_as_tables`. Control the CLI output via:
        * you *can* use `show_changes(terse=True)` to see output trimmed for smaller screens,
        * you *can* set environment variable `NETDOT_CLI_TERSE=True` and its related variables, or [^terse]
        * you *can* set `netdot.defaults.TERSE` directly.
    * Save those changes using `save_changes`
        > ℹ `save_changes` will asks for user confirmation if any DELETEs are planned (unless you call `save_changes(confirm=False)`)
* Implemented Python Dataclasses for *most* all of the Netdot Database schema.
    * All except two ArpCache data types and the four 'binary blob' containing data types, all 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 you call `delete(confirm=False)`)
* 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](./generated-api-docs.md).
* 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: "delimiter" 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.dataclasses`
  * 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.


<a id="netdot-python-api-generated-documentation"></a>
# Netdot Python API Generated Documentation

> Version 0.4.0 documentation generated on Nov 02, 2023 at 02:41PM 
>
> 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.
```

### generate_markdown_docs_ENV_VARs

> ```generate_markdown_docs_ENV_VARs()```

```
Generate documentation for all of the default values in netdot.defaults.

> This is useful for understanding what flags are available, and what their default values are.
```

### 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.

> NOTE: This will return ALL AccessRights from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL ASNs from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular MaintContract or its `id`.

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

### get_assets_by_physaddr

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

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

Args:
    other (int,NetdotAPIDataclass): The particular PhysAddr or its `id`.

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

### get_assets_by_product_id

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Product or its `id`.

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

### get_assets_where

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

```
Get info about Assets from Netdot.

> NOTE: This will return ALL Assets from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL Audits from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL Availabilities from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Closet or its `id`.

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

### get_backbonecables_by_owner

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_backbonecables_by_start_closet

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Closet or its `id`.

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

### get_backbonecables_by_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular CableType or its `id`.

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

### get_backbonecables_where

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

```
Get info about BackboneCables from Netdot.

> NOTE: This will return ALL BackboneCables from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_bgppeerings_by_device

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_bgppeerings_by_entity

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_bgppeerings_where

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

```
Get info about BGPPeerings from Netdot.

> NOTE: This will return ALL BGPPeerings from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular BackboneCable or its `id`.

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

### get_cablestrands_by_fiber_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular FiberType or its `id`.

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

### get_cablestrands_by_status

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

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

Args:
    other (int,NetdotAPIDataclass): The particular StrandStatus or its `id`.

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

### get_cablestrands_where

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

```
Get info about CableStrands from Netdot.

> NOTE: This will return ALL CableStrands from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL CableTypes from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular SiteLink or its `id`.

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

### get_circuits_by_status

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

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

Args:
    other (int,NetdotAPIDataclass): The particular CircuitStatus or its `id`.

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

### get_circuits_by_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular CircuitType or its `id`.

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

### get_circuits_by_vendor

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_circuits_where

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

```
Get info about Circuits from Netdot.

> NOTE: This will return ALL Circuits from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL CircuitStatuses from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL CircuitTypes from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Room or its `id`.

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

### get_closets_where

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

```
Get info about Closets from Netdot.

> NOTE: This will return ALL Closets from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL ContactLists from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_contacts_by_contacttype

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

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactType or its `id`.

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

### get_contacts_by_notify_email

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Availability or its `id`.

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

### get_contacts_by_notify_pager

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Availability or its `id`.

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

### get_contacts_by_notify_voice

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Availability or its `id`.

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

### get_contacts_by_person

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Person or its `id`.

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

### get_contacts_where

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

```
Get info about Contacts from Netdot.

> NOTE: This will return ALL Contacts from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL ContactTypes from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL DeviceAttrNames from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_deviceattrs_by_name

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

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

Args:
    other (int,NetdotAPIDataclass): The particular DeviceAttrName or its `id`.

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

### get_deviceattrs_where

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

```
Get info about DeviceAttrs from Netdot.

> NOTE: This will return ALL DeviceAttrs from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_devicecontacts_by_device

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_devicecontacts_where

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

```
Get info about DeviceContacts from Netdot.

> NOTE: This will return ALL DeviceContacts from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_devicemodules_where

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

```
Get info about DeviceModules from Netdot.

> NOTE: This will return ALL DeviceModules from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Asset or its `id`.

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

### get_devices_by_monitorstatus

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

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

Args:
    other (int,NetdotAPIDataclass): The particular MonitorStatus or its `id`.

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

### get_devices_by_name

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

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_devices_by_owner

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_devices_by_room

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Room or its `id`.

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

### get_devices_by_site

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

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

### get_devices_by_snmp_target

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

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_devices_by_used_by

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_devices_where

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

```
Get info about Devices from Netdot.

> NOTE: This will return ALL Devices from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL DHCPAttrNames from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL DHCPAttrs from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular DHCPScope or its `id`.

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

### get_dhcpscopes_by_ipblock

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

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_dhcpscopes_by_physaddr

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

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

Args:
    other (int,NetdotAPIDataclass): The particular PhysAddr or its `id`.

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

### get_dhcpscopes_by_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular DHCPScopeType or its `id`.

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

### get_dhcpscopes_where

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

```
Get info about DHCPScopes from Netdot.

> NOTE: This will return ALL DHCPScopes from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL DHCPScopeTypes from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular DHCPScope or its `id`.

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

### get_dhcpscopeuses_by_template

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

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

Args:
    other (int,NetdotAPIDataclass): The particular DHCPScope or its `id`.

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

### get_dhcpscopeuses_where

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

```
Get info about DHCPScopeUses from Netdot.

> NOTE: This will return ALL DHCPScopeUses from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Availability or its `id`.

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

### get_entities_by_contactlist

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

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_entities_where

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

```
Get info about Entities from Netdot.

> NOTE: This will return ALL Entities from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_entityroles_by_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular EntityType or its `id`.

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

### get_entityroles_where

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

```
Get info about EntityRoles from Netdot.

> NOTE: This will return ALL EntityRoles from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_entitysites_by_site

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

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

### get_entitysites_where

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

```
Get info about EntitySites from Netdot.

> NOTE: This will return ALL EntitySites from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL EntityTypes from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL FiberTypes from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

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

### get_floors_where

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

```
Get info about Floors from Netdot.

> NOTE: This will return ALL Floors from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular FWTable or its `id`.

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

### get_fwtableentries_by_interface

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Interface or its `id`.

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

### get_fwtableentries_by_physaddr

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

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

Args:
    other (int,NetdotAPIDataclass): The particular PhysAddr or its `id`.

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

### get_fwtableentries_where

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

```
Get info about FWTableEntries from Netdot.

> NOTE: This will return ALL FWTableEntries from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_fwtables_where

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

```
Get info about FWTables from Netdot.

> NOTE: This will return ALL FWTables from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular AccessRight or its `id`.

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

### get_grouprights_by_contactlist

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

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_grouprights_where

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

```
Get info about GroupRights from Netdot.

> NOTE: This will return ALL GroupRights from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Closet or its `id`.

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

### get_horizontalcables_by_contactlist

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

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_horizontalcables_by_room

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Room or its `id`.

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

### get_horizontalcables_by_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular CableType or its `id`.

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

### get_horizontalcables_where

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

```
Get info about HorizontalCables from Netdot.

> NOTE: This will return ALL HorizontalCables from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL HostAudits from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_interfaces_by_device

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_interfaces_by_jack

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

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

Args:
    other (int,NetdotAPIDataclass): The particular HorizontalCable or its `id`.

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

### get_interfaces_by_monitorstatus

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

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

Args:
    other (int,NetdotAPIDataclass): The particular MonitorStatus or its `id`.

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

### get_interfaces_by_neighbor

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Interface or its `id`.

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

### get_interfaces_by_physaddr

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

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

Args:
    other (int,NetdotAPIDataclass): The particular PhysAddr or its `id`.

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

### get_interfaces_where

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

```
Get info about Interfaces from Netdot.

> NOTE: This will return ALL Interfaces from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Interface or its `id`.

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

### get_interfacevlans_by_stp_instance

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

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

Args:
    other (int,NetdotAPIDataclass): The particular STPInstance or its `id`.

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

### get_interfacevlans_by_vlan

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

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

Args:
    other (int,NetdotAPIDataclass): The particular VLAN or its `id`.

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

### get_interfacevlans_where

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

```
Get info about InterfaceVLANs from Netdot.

> NOTE: This will return ALL InterfaceVLANs from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL IPBlockAttrNames from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_ipblockattrs_where

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

```
Get info about IPBlockAttrs from Netdot.

> NOTE: This will return ALL IPBlockAttrs from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ASN or its `id`.

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

### get_ipblocks_by_interface

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Interface or its `id`.

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

### get_ipblocks_by_owner

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_ipblocks_by_status

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

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlockStatus or its `id`.

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

### get_ipblocks_by_used_by

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_ipblocks_by_vlan

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

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

Args:
    other (int,NetdotAPIDataclass): The particular VLAN or its `id`.

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

### get_ipblocks_where

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

```
Get info about IPBlocks from Netdot.

> NOTE: This will return ALL IPBlocks from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL IPBlockStatuses from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

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

### get_ipservices_by_ip

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

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_ipservices_by_monitorstatus

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

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

Args:
    other (int,NetdotAPIDataclass): The particular MonitorStatus or its `id`.

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

### get_ipservices_by_service

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Service or its `id`.

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

### get_ipservices_where

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

```
Get info about IPServices from Netdot.

> NOTE: This will return ALL IPServices from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_maintcontracts_where

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

```
Get info about MaintContracts from Netdot.

> NOTE: This will return ALL MaintContracts from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL MonitorStatuses from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL OUIs from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_persons_by_location

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

Returns:
    List[netdot.Person]: The list of Persons associated to the Site.
```

### get_persons_by_room

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Room or its `id`.

Returns:
    List[netdot.Person]: The list of Persons associated to the Room.
```

### get_persons_by_user_type

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

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

Args:
    other (int,NetdotAPIDataclass): The particular UserType or its `id`.

Returns:
    List[netdot.Person]: The list of Persons associated to the UserType.
```

### get_persons_where

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

```
Get info about Persons from Netdot.

> NOTE: This will return ALL Persons from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL PhysAddrAttrNames from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL PhysAddrAttrs from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL PhysAddrs from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL Products from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL ProductTypes from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Rooms associated to a particular Floor.

Args:
    other (int,NetdotAPIDataclass): The particular Floor or its `id`.

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

### get_rooms_where

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

```
Get info about Rooms from Netdot.

> NOTE: This will return ALL Rooms from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Zone or its `id`.

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

### get_rr_where

> ```get_rr_where(self, **url_params) -> List[netdot.dataclasses.dns.RR]```

```
Get info about RR from Netdot.

> NOTE: This will return ALL RR from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_rraddr_by_rr

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

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rraddr_where

> ```get_rraddr_where(self, **url_params) -> List[netdot.dataclasses.dns.RRADDR]```

```
Get info about RRADDR from Netdot.

> NOTE: This will return ALL RRADDR from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrcname_where

> ```get_rrcname_where(self, **url_params) -> List[netdot.dataclasses.dns.RRCNAME]```

```
Get info about RRCNAME from Netdot.

> NOTE: This will return ALL RRCNAME from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrds_where

> ```get_rrds_where(self, **url_params) -> List[netdot.dataclasses.dns.RRDS]```

```
Get info about RRDS from Netdot.

> NOTE: This will return ALL RRDS from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrhinfo_where

> ```get_rrhinfo_where(self, **url_params) -> List[netdot.dataclasses.dns.RRHINFO]```

```
Get info about RRHINFO from Netdot.

> NOTE: This will return ALL RRHINFO from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrloc_where

> ```get_rrloc_where(self, **url_params) -> List[netdot.dataclasses.dns.RRLOC]```

```
Get info about RRLOC from Netdot.

> NOTE: This will return ALL RRLOC from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrmx_where

> ```get_rrmx_where(self, **url_params) -> List[netdot.dataclasses.dns.RRMX]```

```
Get info about RRMX from Netdot.

> NOTE: This will return ALL RRMX from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrnaptr_where

> ```get_rrnaptr_where(self, **url_params) -> List[netdot.dataclasses.dns.RRNAPTR]```

```
Get info about RRNAPTR from Netdot.

> NOTE: This will return ALL RRNAPTR from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrns_where

> ```get_rrns_where(self, **url_params) -> List[netdot.dataclasses.dns.RRNS]```

```
Get info about RRNS from Netdot.

> NOTE: This will return ALL RRNS from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_rrptr_by_rr

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

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrptr_where

> ```get_rrptr_where(self, **url_params) -> List[netdot.dataclasses.dns.RRPTR]```

```
Get info about RRPTR from Netdot.

> NOTE: This will return ALL RRPTR from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrsrv_where

> ```get_rrsrv_where(self, **url_params) -> List[netdot.dataclasses.dns.RRSRV]```

```
Get info about RRSRV from Netdot.

> NOTE: This will return ALL RRSRV from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular RR or its `id`.

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

### get_rrtxt_where

> ```get_rrtxt_where(self, **url_params) -> List[netdot.dataclasses.dns.RRTXT]```

```
Get info about RRTXT from Netdot.

> NOTE: This will return ALL RRTXT from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL SavedQueries from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL SchemaInfo from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL Services from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Entity or its `id`.

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

### get_sitelinks_by_farend

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

Returns:
    List[netdot.SiteLink]: The list of SiteLinks associated to the Site.
```

### get_sitelinks_by_nearend

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

Returns:
    List[netdot.SiteLink]: The list of SiteLinks associated to the Site.
```

### get_sitelinks_where

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

```
Get info about SiteLinks from Netdot.

> NOTE: This will return ALL SiteLinks from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Availability or its `id`.

Returns:
    List[netdot.Site]: The list of Sites associated to the Availability.
```

### get_sites_by_contactlist

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

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

Returns:
    List[netdot.Site]: The list of Sites associated to the ContactList.
```

### get_sites_where

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

```
Get info about Sites from Netdot.

> NOTE: This will return ALL Sites from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Site or its `id`.

Returns:
    List[netdot.SiteSubnet]: The list of SiteSubnets associated to the Site.
```

### get_sitesubnets_by_subnet

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

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

Args:
    other (int,NetdotAPIDataclass): The particular IPBlock or its `id`.

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

### get_sitesubnets_where

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

```
Get info about SiteSubnets from Netdot.

> NOTE: This will return ALL SiteSubnets from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of Splices associated to a particular CableStrand.

Args:
    other (int,NetdotAPIDataclass): The particular CableStrand or its `id`.

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

### get_splices_by_strand2

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

```
Get the list of Splices associated to a particular CableStrand.

Args:
    other (int,NetdotAPIDataclass): The particular CableStrand or its `id`.

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

### get_splices_where

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

```
Get info about Splices from Netdot.

> NOTE: This will return ALL Splices from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular Device or its `id`.

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

### get_stpinstances_where

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

```
Get info about STPInstances from Netdot.

> NOTE: This will return ALL STPInstances from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL StrandStatuses from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of SubnetZones associated to a particular Zone.

Args:
    other (int,NetdotAPIDataclass): The particular Zone or its `id`.

Returns:
    List[netdot.SubnetZone]: The list of SubnetZones associated to the Zone.
```

### get_subnetzones_where

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

```
Get info about SubnetZones from Netdot.

> NOTE: This will return ALL SubnetZones from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular AccessRight or its `id`.

Returns:
    List[netdot.UserRight]: The list of UserRights associated to the AccessRight.
```

### get_userrights_by_person

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

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

Args:
    other (int,NetdotAPIDataclass): The particular Person or its `id`.

Returns:
    List[netdot.UserRight]: The list of UserRights associated to the Person.
```

### get_userrights_where

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

```
Get info about UserRights from Netdot.

> NOTE: This will return ALL UserRights from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL UserTypes from Netdot if no kwargs are provided.

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.

> NOTE: This will return ALL VLANGroups from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of VLANs associated to a particular VLANGroup.

Args:
    other (int,NetdotAPIDataclass): The particular VLANGroup or its `id`.

Returns:
    List[netdot.VLAN]: The list of VLANs associated to the VLANGroup.
```

### get_vlans_where

> ```get_vlans_where(self, **url_params) -> List[netdot.dataclasses.vlan.VLAN]```

```
Get info about VLANs from Netdot.

> NOTE: This will return ALL VLANs from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

```
Get the list of ZoneAliases associated to a particular Zone.

Args:
    other (int,NetdotAPIDataclass): The particular Zone or its `id`.

Returns:
    List[netdot.ZoneAlias]: The list of ZoneAliases associated to the Zone.
```

### get_zonealiases_where

> ```get_zonealiases_where(self, **url_params) -> List[netdot.dataclasses.dns.ZoneAlias]```

```
Get info about ZoneAliases from Netdot.

> NOTE: This will return ALL ZoneAliases from Netdot if no kwargs are provided.

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, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)```

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

Args:
    other (int,NetdotAPIDataclass): The particular ContactList or its `id`.

Returns:
    List[netdot.Zone]: The list of Zones associated to the ContactList.
```

### get_zones_where

> ```get_zones_where(self, **url_params) -> List[netdot.dataclasses.dns.Zone]```

```
Get info about Zones from Netdot.

> NOTE: This will return ALL Zones from Netdot if no kwargs are provided.

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=False)```

```
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=False)```

```
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)```

```
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. (Via the `Device.asset_id` attribute)

Returns:
    List[netdot.Device]: All Devices related to this Asset.
```

### load_maint_contract

> ```load_maint_contract(self) -> netdot.dataclasses.misc.MaintContract```

```
Load the maint_contract (MaintContract) associated to this Asset.

Returns:
    netdot.MaintContract: The full MaintContract object.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the physaddr (PhysAddr) associated to this Asset.

Returns:
    netdot.PhysAddr: The full PhysAddr object.
```

### load_product_id

> ```load_product_id(self) -> netdot.dataclasses.products.Product```

```
Load the product_id (Product) associated to this Asset.

Returns:
    netdot.Product: The full Product object.
```

### update

> ```update(self)```

```
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)```

```
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 (ContactList) associated to this BGPPeering.

Returns:
    netdot.ContactList: The full ContactList object.
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the device (Device) associated to this BGPPeering.

Returns:
    netdot.Device: The full Device object.
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the entity (Entity) associated to this BGPPeering.

Returns:
    netdot.Entity: The full Entity object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)
### add_interface

> ```add_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.Interface```

```
Add a Interface to this HorizontalCable.

Returns:
    netdot.Interface: The created Interface.
```

### create

> ```create(self)```

```
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 (Closet) associated to this HorizontalCable.

Returns:
    netdot.Closet: The full Closet object.
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the contactlist (ContactList) associated to this HorizontalCable.

Returns:
    netdot.ContactList: The full ContactList object.
```

### load_interfaces

> ```load_interfaces(self) -> List[netdot.dataclasses.interface.Interface]```

```
Load the Interfaces associated to this HorizontalCable. (Via the `Interface.jack` attribute)

Returns:
    List[netdot.Interface]: All Interfaces related to this HorizontalCable.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the room (Room) associated to this HorizontalCable.

Returns:
    netdot.Room: The full Room object.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.cables.CableType```

```
Load the type (CableType) associated to this HorizontalCable.

Returns:
    netdot.CableType: The full CableType object.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `CableStrand.cable` attribute)

Returns:
    List[netdot.CableStrand]: All CableStrands related to this BackboneCable.
```

### load_end_closet

> ```load_end_closet(self) -> netdot.dataclasses.site.Closet```

```
Load the end_closet (Closet) associated to this BackboneCable.

Returns:
    netdot.Closet: The full Closet object.
```

### load_owner

> ```load_owner(self) -> netdot.dataclasses.entity.Entity```

```
Load the owner (Entity) associated to this BackboneCable.

Returns:
    netdot.Entity: The full Entity object.
```

### load_start_closet

> ```load_start_closet(self) -> netdot.dataclasses.site.Closet```

```
Load the start_closet (Closet) associated to this BackboneCable.

Returns:
    netdot.Closet: The full Closet object.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.cables.CableType```

```
Load the type (CableType) associated to this BackboneCable.

Returns:
    netdot.CableType: The full CableType object.
```

### update

> ```update(self)```

```
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)```

```
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 linkid (SiteLink) associated to this Circuit.

Returns:
    netdot.SiteLink: The full SiteLink object.
```

### load_status

> ```load_status(self) -> netdot.dataclasses.cables.CircuitStatus```

```
Load the status (CircuitStatus) associated to this Circuit.

Returns:
    netdot.CircuitStatus: The full CircuitStatus object.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.cables.CircuitType```

```
Load the type (CircuitType) associated to this Circuit.

Returns:
    netdot.CircuitType: The full CircuitType object.
```

### load_vendor

> ```load_vendor(self) -> netdot.dataclasses.entity.Entity```

```
Load the vendor (Entity) associated to this Circuit.

Returns:
    netdot.Entity: The full Entity object.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `CableStrand.status` attribute)

Returns:
    List[netdot.CableStrand]: All CableStrands related to this StrandStatus.
```

### update

> ```update(self)```

```
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)```

```
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 cable (BackboneCable) associated to this CableStrand.

Returns:
    netdot.BackboneCable: The full BackboneCable object.
```

### load_fiber_type

> ```load_fiber_type(self) -> netdot.dataclasses.cables.FiberType```

```
Load the fiber_type (FiberType) associated to this CableStrand.

Returns:
    netdot.FiberType: The full FiberType object.
```

### load_status

> ```load_status(self) -> netdot.dataclasses.cables.StrandStatus```

```
Load the status (StrandStatus) associated to this CableStrand.

Returns:
    netdot.StrandStatus: The full StrandStatus object.
```

### load_strand1_splices

> ```load_strand1_splices(self) -> List[netdot.dataclasses.cables.Splice]```

```
Load the Splices associated to this CableStrand. (Via the `Splice.strand1` attribute)

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. (Via the `Splice.strand2` attribute)

Returns:
    List[netdot.Splice]: All Splices related to this CableStrand.
```

### update

> ```update(self)```

```
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)```

```
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 strand1 (CableStrand) associated to this Splice.

Returns:
    netdot.CableStrand: The full CableStrand object.
```

### load_strand2

> ```load_strand2(self) -> netdot.dataclasses.cables.CableStrand```

```
Load the strand2 (CableStrand) associated to this Splice.

Returns:
    netdot.CableStrand: The full CableStrand object.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `BackboneCable.type` attribute)

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. (Via the `HorizontalCable.type` attribute)

Returns:
    List[netdot.HorizontalCable]: All HorizontalCables related to this CableType.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `Circuit.status` attribute)

Returns:
    List[netdot.Circuit]: All Circuits related to this CircuitStatus.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `Circuit.type` attribute)

Returns:
    List[netdot.Circuit]: All Circuits related to this CircuitType.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `CableStrand.fiber_type` attribute)

Returns:
    List[netdot.CableStrand]: All CableStrands related to this FiberType.
```

### update

> ```update(self)```

```
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)```

```
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_id (Asset) associated to this Device.

Returns:
    netdot.Asset: The full Asset object.
```

### 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 (MonitorStatus) associated to this Device.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object.
```

### load_name

> ```load_name(self) -> netdot.dataclasses.dns.RR```

```
Load the name (RR) associated to this Device.

Returns:
    netdot.RR: The full RR object.
```

### load_owner

> ```load_owner(self) -> netdot.dataclasses.entity.Entity```

```
Load the owner (Entity) associated to this Device.

Returns:
    netdot.Entity: The full Entity object.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the room (Room) associated to this Device.

Returns:
    netdot.Room: The full Room object.
```

### load_site

> ```load_site(self) -> netdot.dataclasses.site.Site```

```
Load the site (Site) associated to this Device.

Returns:
    netdot.Site: The full Site object.
```

### load_snmp_target

> ```load_snmp_target(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the snmp_target (IPBlock) associated to this Device.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### 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 used_by (Entity) associated to this Device.

Returns:
    netdot.Entity: The full Entity object.
```

### update

> ```update(self)```

```
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)```

```
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 (Device) associated to this DeviceAttr.

Returns:
    netdot.Device: The full Device object.
```

### load_name

> ```load_name(self) -> netdot.dataclasses.device.DeviceAttrName```

```
Load the name (DeviceAttrName) associated to this DeviceAttr.

Returns:
    netdot.DeviceAttrName: The full DeviceAttrName object.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `DeviceAttr.name` attribute)

Returns:
    List[netdot.DeviceAttr]: All DeviceAttrs related to this DeviceAttrName.
```

### update

> ```update(self)```

```
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)```

```
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 (ContactList) associated to this DeviceContacts.

Returns:
    netdot.ContactList: The full ContactList object.
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the device (Device) associated to this DeviceContacts.

Returns:
    netdot.Device: The full Device object.
```

### update

> ```update(self)```

```
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)```

```
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 (Device) associated to this DeviceModule.

Returns:
    netdot.Device: The full Device object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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 (Device) associated to this STPInstance.

Returns:
    netdot.Device: The full Device object.
```

### load_interfacevlans

> ```load_interfacevlans(self) -> List[netdot.dataclasses.interface.InterfaceVLAN]```

```
Load the InterfaceVLANs associated to this STPInstance. (Via the `InterfaceVLAN.stp_instance` attribute)

Returns:
    List[netdot.InterfaceVLAN]: All InterfaceVLANs related to this STPInstance.
```

### update

> ```update(self)```

```
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)```

```
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 container (DHCPScope) associated to this DHCPScope.

Returns:
    netdot.DHCPScope: The full DHCPScope object.
```

### load_dhcpscopes

> ```load_dhcpscopes(self) -> List[netdot.dataclasses.dhcp.DHCPScope]```

```
Load the DHCPScopes associated to this DHCPScope. (Via the `DHCPScope.container` attribute)

Returns:
    List[netdot.DHCPScope]: All DHCPScopes related to this DHCPScope.
```

### load_ipblock

> ```load_ipblock(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the ipblock (IPBlock) associated to this DHCPScope.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the physaddr (PhysAddr) associated to this DHCPScope.

Returns:
    netdot.PhysAddr: The full PhysAddr object.
```

### load_scope_dhcpscopeuses

> ```load_scope_dhcpscopeuses(self) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]```

```
Load the DHCPScopeUses associated to this DHCPScope. (Via the `DHCPScopeUse.scope` attribute)

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. (Via the `DHCPScopeUse.template` attribute)

Returns:
    List[netdot.DHCPScopeUse]: All DHCPScopeUses related to this DHCPScope.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.dhcp.DHCPScopeType```

```
Load the type (DHCPScopeType) associated to this DHCPScope.

Returns:
    netdot.DHCPScopeType: The full DHCPScopeType object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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 scope (DHCPScope) associated to this DHCPScopeUse.

Returns:
    netdot.DHCPScope: The full DHCPScope object.
```

### load_template

> ```load_template(self) -> netdot.dataclasses.dhcp.DHCPScope```

```
Load the template (DHCPScope) associated to this DHCPScopeUse.

Returns:
    netdot.DHCPScope: The full DHCPScope object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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. (Via the `DHCPScope.type` attribute)

Returns:
    List[netdot.DHCPScope]: All DHCPScopes related to this DHCPScopeType.
```

### update

> ```update(self)```

```
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)```

```
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 (ContactList) associated to this Zone.

Returns:
    netdot.ContactList: The full ContactList object.
```

### 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)```

```
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)```

```
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 (Zone) associated to this ZoneAlias.

Returns:
    netdot.Zone: The full Zone object.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `Device.name` attribute)

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 (Zone) associated to this RR.

Returns:
    netdot.Zone: The full Zone object.
```

### update

> ```update(self)```

```
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)```

```
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 (IPBlock) associated to this RRADDR.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the rr (RR) associated to this RRADDR.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRCNAME.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRDS.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRHINFO.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRLOC.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRMX.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRNAPTR.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRNS.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (IPBlock) associated to this RRPTR.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### load_rr

> ```load_rr(self) -> netdot.dataclasses.dns.RR```

```
Load the rr (RR) associated to this RRPTR.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRSRV.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (RR) associated to this RRTXT.

Returns:
    netdot.RR: The full RR object.
```

### update

> ```update(self)```

```
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)```

```
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 (Availability) associated to this Entity.

Returns:
    netdot.Availability: The full Availability object.
```

### load_backbonecables

> ```load_backbonecables(self) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Load the BackboneCables associated to this Entity. (Via the `BackboneCable.owner` attribute)

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. (Via the `Circuit.vendor` attribute)

Returns:
    List[netdot.Circuit]: All Circuits related to this Entity.
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the contactlist (ContactList) associated to this Entity.

Returns:
    netdot.ContactList: The full ContactList object.
```

### 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. (Via the `MaintContract.provider` attribute)

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. (Via the `Device.owner` attribute)

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. (Via the `IPBlock.owner` attribute)

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. (Via the `Device.used_by` attribute)

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. (Via the `IPBlock.used_by` attribute)

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this Entity.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `EntityRole.type` attribute)

Returns:
    List[netdot.EntityRole]: All EntityRoles related to this EntityType.
```

### update

> ```update(self)```

```
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)```

```
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 (Entity) associated to this EntityRole.

Returns:
    netdot.Entity: The full Entity object.
```

### load_type

> ```load_type(self) -> netdot.dataclasses.entity.EntityType```

```
Load the type (EntityType) associated to this EntityRole.

Returns:
    netdot.EntityType: The full EntityType object.
```

### update

> ```update(self)```

```
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)```

```
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 (Entity) associated to this EntitySite.

Returns:
    netdot.Entity: The full Entity object.
```

### load_site

> ```load_site(self) -> netdot.dataclasses.site.Site```

```
Load the site (Site) associated to this EntitySite.

Returns:
    netdot.Site: The full Site object.
```

### update

> ```update(self)```

```
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_interface

> ```add_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.Interface```

```
Add a Interface to this Interface.

Returns:
    netdot.Interface: The created Interface.
```

### 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)```

```
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 (ContactList) associated to this Interface.

Returns:
    netdot.ContactList: The full ContactList object.
```

### load_device

> ```load_device(self) -> netdot.dataclasses.device.Device```

```
Load the device (Device) associated to this Interface.

Returns:
    netdot.Device: The full Device object.
```

### 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_interfaces

> ```load_interfaces(self) -> List[netdot.dataclasses.interface.Interface]```

```
Load the Interfaces associated to this Interface. (Via the `Interface.neighbor` attribute)

Returns:
    List[netdot.Interface]: All Interfaces 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_jack

> ```load_jack(self) -> netdot.dataclasses.cables.HorizontalCable```

```
Load the jack (HorizontalCable) associated to this Interface.

Returns:
    netdot.HorizontalCable: The full HorizontalCable object.
```

### load_monitorstatus

> ```load_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatus```

```
Load the monitorstatus (MonitorStatus) associated to this Interface.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object.
```

### load_neighbor

> ```load_neighbor(self) -> netdot.dataclasses.interface.Interface```

```
Load the neighbor (Interface) associated to this Interface.

Returns:
    netdot.Interface: The full Interface object.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the physaddr (PhysAddr) associated to this Interface.

Returns:
    netdot.PhysAddr: The full PhysAddr object.
```

### update

> ```update(self)```

```
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)```

```
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 (Interface) associated to this InterfaceVLAN.

Returns:
    netdot.Interface: The full Interface object.
```

### load_stp_instance

> ```load_stp_instance(self) -> netdot.dataclasses.device.STPInstance```

```
Load the stp_instance (STPInstance) associated to this InterfaceVLAN.

Returns:
    netdot.STPInstance: The full STPInstance object.
```

### load_vlan

> ```load_vlan(self) -> netdot.dataclasses.vlan.VLAN```

```
Load the vlan (VLAN) associated to this InterfaceVLAN.

Returns:
    netdot.VLAN: The full VLAN object.
```

### update

> ```update(self)```

```
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)```

```
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 (ASN) associated to this IPBlock.

Returns:
    netdot.ASN: The full ASN object.
```

### load_devices

> ```load_devices(self) -> List[netdot.dataclasses.device.Device]```

```
Load the Devices associated to this IPBlock. (Via the `Device.snmp_target` attribute)

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 (Interface) associated to this IPBlock.

Returns:
    netdot.Interface: The full Interface object.
```

### 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. (Via the `IPService.ip` attribute)

Returns:
    List[netdot.IPService]: All IPServices related to this IPBlock.
```

### load_owner

> ```load_owner(self) -> netdot.dataclasses.entity.Entity```

```
Load the owner (Entity) associated to this IPBlock.

Returns:
    netdot.Entity: The full Entity object.
```

### 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. (Via the `SiteSubnet.subnet` attribute)

Returns:
    List[netdot.SiteSubnet]: All SiteSubnets related to this IPBlock.
```

### load_status

> ```load_status(self) -> netdot.dataclasses.ipblock.IPBlockStatus```

```
Load the status (IPBlockStatus) associated to this IPBlock.

Returns:
    netdot.IPBlockStatus: The full IPBlockStatus object.
```

### load_used_by

> ```load_used_by(self) -> netdot.dataclasses.entity.Entity```

```
Load the used_by (Entity) associated to this IPBlock.

Returns:
    netdot.Entity: The full Entity object.
```

### load_vlan

> ```load_vlan(self) -> netdot.dataclasses.vlan.VLAN```

```
Load the vlan (VLAN) associated to this IPBlock.

Returns:
    netdot.VLAN: The full VLAN object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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. (Via the `IPBlock.status` attribute)

Returns:
    List[netdot.IPBlock]: All IPBlocks related to this IPBlockStatus.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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 (IPBlock) associated to this IPBlockAttr.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### update

> ```update(self)```

```
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)```

```
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 (ContactList) associated to this IPService.

Returns:
    netdot.ContactList: The full ContactList object.
```

### load_ip

> ```load_ip(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the ip (IPBlock) associated to this IPService.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### load_monitorstatus

> ```load_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatus```

```
Load the monitorstatus (MonitorStatus) associated to this IPService.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object.
```

### load_service

> ```load_service(self) -> netdot.dataclasses.ipblock.Service```

```
Load the service (Service) associated to this IPService.

Returns:
    netdot.Service: The full Service object.
```

### update

> ```update(self)```

```
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)```

```
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 (Zone) associated to this SubnetZone.

Returns:
    netdot.Zone: The full Zone object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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. (Via the `Asset.product_id` attribute)

Returns:
    List[netdot.Asset]: All Assets related to this Product.
```

### update

> ```update(self)```

```
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)```

```
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 (Availability) associated to this Site.

Returns:
    netdot.Availability: The full Availability object.
```

### 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 (ContactList) associated to this Site.

Returns:
    netdot.ContactList: The full ContactList object.
```

### 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. (Via the `SiteLink.farend` attribute)

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. (Via the `SiteLink.nearend` attribute)

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. (Via the `Person.location` attribute)

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)```

```
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)```

```
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 (Site) associated to this SiteSubnet.

Returns:
    netdot.Site: The full Site object.
```

### load_subnet

> ```load_subnet(self) -> netdot.dataclasses.ipblock.IPBlock```

```
Load the subnet (IPBlock) associated to this SiteSubnet.

Returns:
    netdot.IPBlock: The full IPBlock object.
```

### update

> ```update(self)```

```
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)```

```
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 (Site) associated to this Floor.

Returns:
    netdot.Site: The full Site object.
```

### update

> ```update(self)```

```
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)```

```
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 (Floor) associated to this Room.

Returns:
    netdot.Floor: The full Floor object.
```

### 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)```

```
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)```

```
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. (Via the `BackboneCable.end_closet` attribute)

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 (Room) associated to this Closet.

Returns:
    netdot.Room: The full Room object.
```

### load_start_closet_backbonecables

> ```load_start_closet_backbonecables(self) -> List[netdot.dataclasses.cables.BackboneCable]```

```
Load the BackboneCables associated to this Closet. (Via the `BackboneCable.start_closet` attribute)

Returns:
    List[netdot.BackboneCable]: All BackboneCables related to this Closet.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `Circuit.linkid` attribute)

Returns:
    List[netdot.Circuit]: All Circuits related to this SiteLink.
```

### load_entity

> ```load_entity(self) -> netdot.dataclasses.entity.Entity```

```
Load the entity (Entity) associated to this SiteLink.

Returns:
    netdot.Entity: The full Entity object.
```

### load_farend

> ```load_farend(self) -> netdot.dataclasses.site.Site```

```
Load the farend (Site) associated to this SiteLink.

Returns:
    netdot.Site: The full Site object.
```

### load_nearend

> ```load_nearend(self) -> netdot.dataclasses.site.Site```

```
Load the nearend (Site) associated to this SiteLink.

Returns:
    netdot.Site: The full Site object.
```

### update

> ```update(self)```

```
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)```

```
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 (VLANGroup) associated to this VLAN.

Returns:
    netdot.VLANGroup: The full VLANGroup object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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 (Device) associated to this FWTable.

Returns:
    netdot.Device: The full Device object.
```

### 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)```

```
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)```

```
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 (FWTable) associated to this FWTableEntry.

Returns:
    netdot.FWTable: The full FWTable object.
```

### load_interface

> ```load_interface(self) -> netdot.dataclasses.interface.Interface```

```
Load the interface (Interface) associated to this FWTableEntry.

Returns:
    netdot.Interface: The full Interface object.
```

### load_physaddr

> ```load_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddr```

```
Load the physaddr (PhysAddr) associated to this FWTableEntry.

Returns:
    netdot.PhysAddr: The full PhysAddr object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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 (AccessRight) associated to this GroupRight.

Returns:
    netdot.AccessRight: The full AccessRight object.
```

### load_contactlist

> ```load_contactlist(self) -> netdot.dataclasses.users.ContactList```

```
Load the contactlist (ContactList) associated to this GroupRight.

Returns:
    netdot.ContactList: The full ContactList object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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. (Via the `Person.user_type` attribute)

Returns:
    List[netdot.Person]: All Persons related to this UserType.
```

### update

> ```update(self)```

```
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)```

```
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 (Entity) associated to this Person.

Returns:
    netdot.Entity: The full Entity object.
```

### load_location

> ```load_location(self) -> netdot.dataclasses.site.Site```

```
Load the location (Site) associated to this Person.

Returns:
    netdot.Site: The full Site object.
```

### load_room

> ```load_room(self) -> netdot.dataclasses.site.Room```

```
Load the room (Room) associated to this Person.

Returns:
    netdot.Room: The full Room object.
```

### load_user_type

> ```load_user_type(self) -> netdot.dataclasses.users.UserType```

```
Load the user_type (UserType) associated to this Person.

Returns:
    netdot.UserType: The full UserType object.
```

### 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)```

```
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)```

```
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 (ContactList) associated to this Contact.

Returns:
    netdot.ContactList: The full ContactList object.
```

### load_contacttype

> ```load_contacttype(self) -> netdot.dataclasses.users.ContactType```

```
Load the contacttype (ContactType) associated to this Contact.

Returns:
    netdot.ContactType: The full ContactType object.
```

### load_notify_email

> ```load_notify_email(self) -> netdot.dataclasses.misc.Availability```

```
Load the notify_email (Availability) associated to this Contact.

Returns:
    netdot.Availability: The full Availability object.
```

### load_notify_pager

> ```load_notify_pager(self) -> netdot.dataclasses.misc.Availability```

```
Load the notify_pager (Availability) associated to this Contact.

Returns:
    netdot.Availability: The full Availability object.
```

### load_notify_voice

> ```load_notify_voice(self) -> netdot.dataclasses.misc.Availability```

```
Load the notify_voice (Availability) associated to this Contact.

Returns:
    netdot.Availability: The full Availability object.
```

### load_person

> ```load_person(self) -> netdot.dataclasses.users.Person```

```
Load the person (Person) associated to this Contact.

Returns:
    netdot.Person: The full Person object.
```

### update

> ```update(self)```

```
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)```

```
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 (AccessRight) associated to this UserRight.

Returns:
    netdot.AccessRight: The full AccessRight object.
```

### load_person

> ```load_person(self) -> netdot.dataclasses.users.Person```

```
Load the person (Person) associated to this UserRight.

Returns:
    netdot.Person: The full Person object.
```

### update

> ```update(self)```

```
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)```

```
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. (Via the `Contact.notify_email` attribute)

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. (Via the `Contact.notify_pager` attribute)

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. (Via the `Contact.notify_voice` attribute)

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)```

```
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)```

```
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)```

```
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)```

```
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. (Via the `Asset.maint_contract` attribute)

Returns:
    List[netdot.Asset]: All Assets related to this MaintContract.
```

### load_provider

> ```load_provider(self) -> netdot.dataclasses.entity.Entity```

```
Load the provider (Entity) associated to this MaintContract.

Returns:
    netdot.Entity: The full Entity object.
```

### update

> ```update(self)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
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)```

```
Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.
```



<a id="netdot-python-api-environment-variables"></a>

# Netdot Python API Environment Variables

> Generated using `netdot.defaults.help()`
>
> Version 0.4.0 documentation generated on Nov 02, 2023 at 02:41PM 

```
usage: __main__.py [-h] [--terse TERSE] [--truncate-min TRUNCATE_MIN_CHARS]
                   [--terse-col-width TERSE_COL_WIDTH]
                   [--terse-max-chars TERSE_MAX_CHARS] [--skip-ssl SKIP_SSL]
                   [--timeout TIMEOUT]
                   [--raise-parse-errors RAISE_PARSE_ERRORS]
                   [--warn-missing-fields WARN_MISSING_FIELDS]
                   [--threads THREADS]

optional arguments:
  -h, --help            show this help message and exit
  --terse TERSE         Print terse output (that generally tries to fit the
                        screen width). [env var: NETDOT_CLI_TERSE]
  --truncate-min TRUNCATE_MIN_CHARS
                        The absolute minimum number of characters to print
                        before truncating. [env var:
                        NETDOT_CLI_TRUNCATE_MIN_CHARS]
  --terse-col-width TERSE_COL_WIDTH
                        The number of characters to use for each column when
                        printing terse output. [env var:
                        NETDOT_CLI_TERSE_COL_WIDTH]
  --terse-max-chars TERSE_MAX_CHARS
                        The maximum number of characters to print before
                        truncating. [env var: NETDOT_CLI_TERSE_MAX_CHARS]
  --skip-ssl SKIP_SSL   Skip SSL verification when making API requests. [env
                        var: NETDOT_CLI_SKIP_SSL]
  --timeout TIMEOUT     The number of seconds to wait for a response from the
                        API server. Note: "timeout is not a time limit on the
                        entire response download; rather, an exception is
                        raised if the server has not issued a response for
                        timeout seconds (more precisely, if no bytes have been
                        received on the underlying socket for timeout
                        seconds). If no timeout is specified explicitly,
                        requests do not time out." (from
                        requests.readthedocs.io) [env var: NETDOT_CLI_TIMEOUT]
  --raise-parse-errors RAISE_PARSE_ERRORS
                        Raise an exception if there is an error parsing the
                        response from the API server. [env var:
                        NETDOT_CLI_RAISE_PARSE_ERRORS]
  --warn-missing-fields WARN_MISSING_FIELDS
                        Warn if a field is missing from the response from the
                        API server. [env var: NETDOT_CLI_WARN_MISSING_FIELDS]
  --threads THREADS     The number of threads to use when making API GET
                        requests. [env var: NETDOT_CLI_THREADS]

 In general, command-line values override environment variables which override
defaults.


> ⚠ NOTICE: These defaults are read from Environment Variables when this `netdot.defaults` module loads.
> Look for "[env var: NETDOT_CLI_...]" above to discover the available Environment Variables.
>
> Example: `export NETDOT_CLI_TERSE=True`
>
> Alternately, override these defaults by setting `netdot.defaults.<ENV_VAR_NAME>` directly in your code.
>
> Example: `netdot.defaults.TERSE=True`

```
