Package: netdot
A python wrapper for UO-NetDot's RESTful API.ChangelogAPI DocumentationENV VARs Documentationℹ This documentation is targeted for Network Engineers (who want to do more work using Python).
There areExamplesbelow that can help you get started(copy-paste friendly)!No particular Python knowledge is required (though there is plenty of "Python tip"s and tricks to be learned here)!⚠ NOTE:From 0.2.0 onward, this API wrapper has not been tested on thede facto Open Source version of NetDot (GitHub).InstallThis package is deployed to pypi.org.
Download and install it withpip:pipinstallnetdotInteractive Usage (Python interpreter)Before getting into building a massive integration/tool, you might jump in and get some experience.
Thankfully, we have thePython Interpreter (external)where we can jump in and do some testing!# Enter the Python interpreter by running just "python" in your shell$python
Python3.8.10(default,May262023,14:05:08)...omittedforbrevity...
>>>importnetdot
>>>With the netdot package imported, you can proceed with setting up a connecting and downloading some data!ℹ Most of thePython Netdot APIis actually runtime-generated code.Usetab completionto quickly learn what methods are available.ℹ The Python interpreter is often referred to as 'a REPL' (Read-Eval-Print-Loop).
For more info, see"Using the REPL (in VSCode)" documentation (external).Connecting in the interpreter:netdot.connect()We have enabled interpreter-usage as a first-class feature.
In particular, you will want to use theconnectfunction like the following.>>>importnetdot>>>nd_repo=netdot.connect()WhatistheURLoftheNetDotserver?[https://nsdb.uoregon.edu]:('enter'tousedefault)NetDotusername:myusernameNetDotpassword:**********(usinggetpassmodule,tosecurelycollectpassword)>>>We now have anetdot.Repositorynamednd_repoconnected to Netdot!ℹnetdot.connect()returns anetdot.Repositoryinstance withpropose_changesenabled by default (AKA 'dry run' feature).Example 1: Get Location of an IP Address (by Subnet)If Netdot has well maintained SiteSubnet relationships, then you can use this feature to quickly look up which Site (Building) holds an IP Address.Get the IPBlock for the IP Address:>>>ipblock=nd_repo.get_ipblock_by_address('128.123.25.41')Get the Subnet IPBlock viaload_parent:ℹ Similar toload_parent, there is also aload_childrenmethod.>>>subnet=ipblock.load_parent()Callload_siteson the subnet to load any/all sites that are related to this subnet (via SiteSubnet relationships):ℹ If your Netdot Subnet stretches across many Netdot Sites, this will return all of those Sites.>>>subnet.load_sites()[Site(id=42,name='Oregon Hall'...)]Example 1: Code Sample (copy-paste friendly)ipblock=nd_repo.get_ipblock_by_address('128.123.25.41')subnet=ipblock.load_parent()subnet.load_sites()Example 2: Lookup DNS Record by IP AddressYou can use this API to lookup (and modify) the DNS Resource Record (RR) associated to some IP Address.>>>dns_RR_record=nd_repo.get_rr_by_address('10.243.14.32')The RR contains several pieces of information that may be useful to review!You might wanna see what the Fully Qualified Domain Name (FQDN) is for this RR.>>>dns_RR_record.infer_FQDN()'foobar.uoregon.edu'You can look at the RR's info (AKA 'comment'):>>>dns_RR_record.info'LOC: 123 FooBar Hall CON: Jenny J, 867-5309'You can check when this RR was created, and last modified:>>>dns_RR_record.createddatetime.datetime(2020,1,16,12,7,50)>>>dns_RR_record.modifieddatetime.datetime(2020,1,16,12,7,50)You can propose an update to the name if you like:ℹ You can make updatesanyof the fields ofdns_RR_record.>>>dns_RR_record.name='bazzle'WillUPDATERR:RR(id=265246,active=True,auto_update=False,expiration='',info='',name='bazzle',...And save those the name change to Netdot by callingsave_changes()>>>nd_repo.save_changes()Example 2: Code Sample (copy-paste friendly)dns_RR_record = nd_repo.get_rr_by_address('10.243.14.32')
dns_RR_record.infer_FQDN()
dns_RR_record.info
dns_RR_record.created
dns_RR_record.modified
dns_RR_record.name = 'bazzle'
# And save the name change using:
# nd_repo.save_changes()Example 3: Pretty Printing DNS RecordsContinuing from the prior example,assume we just want to review all the details for the DNS Records we just retrieved.Importpprintfrom the "pprint" module (part of Python stdlib)>>>frompprintimportpprintUse thepprintfunction to printanyreturned Netdot objects>>>pprint(dns_RR_record)RR(id=54482,active=True,auto_update=False,expiration='',info='LOC: 215A Oregon Hall CON: Chris LeBlanc, 6-2931 ',name='metadata2',zone='uoregon.edu',zone_xlink=1,created=datetime.datetime(2020,1,16,12,7,50),modified=datetime.datetime(2020,1,16,12,7,50))>>>dns_RRADDRs=dns_RR_record.load_rraddr()>>>pprint(dns_RRADDRs)[RRADDR(id=16759,ipblock='128.223.37.93',ipblock_xlink=72430287,rr='metadata2.uoregon.edu',rr_xlink=54482,ttl='86400')]Example 3: Code Sample (copy-paste friendly)from pprint import pprint
pprint(dns_RR_record)
dns_RRADDRs = dns_RR_record.load_rraddr()
pprint(dns_RRADDRs)Example 4: Lookup Edge Port for MAC Address in NetDotℹ Tip: This is useful for tracking down the physical location of some MAC Address.⚠ WARNING: "find_edge_port" takes a LONG time, requires a LOT of HTTP requests, and includes assumptions that can lead to inconsistent and inaccurate results: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 you are trying to usefind_edge_port.ℹ This assumption is present when looking up an edge port using NetDot's frontend as well. This method does require additional latency of HTTP requests, which is not required when using Netdot's frontend (frontend may have more accurate/consistent results).You can use this API to lookup the Edge Port associated to some MAC Address.>>>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'136A246B'To load full details about the jack, instead callload_jack()>>>interface.load_jack()HorizontalCable(id=6143,account='',closet='ASDF 101 Oregon Hall',...)Example 4: Code Sample (copy-paste friendly)interface = nd_repo.find_edge_port('8C3BADDA9EF1')
interface.jack
interface.load_jack()Example 5: Check Devices Last ARP for a SiteWant to see the 'last ARP' time for 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)>>>assertlen(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()Print out the "last ARP" time for these devices (sorted).>>>devices=sorted(devices,key=lambdadevice:device.last_arp)>>>fordeviceindevices:>>>print(f"{device.name}last ARPed at{device.last_arp}")foo.uoregon.edulastARPedat1970-01-0100:00:00...trimmedforbrevity...bar.uoregon.edulastARPedat2023-10-2015:00:03baz.uoregon.edulastARPedat2023-11-0720:00:04foobar.uoregon.edulastARPedat2023-11-1008:00:04foobaz.uoregon.edulastARPedat2023-11-1008:00:04Example 5: Code Sample (copy-paste friendly)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]
devices = site.load_devices()
devices = sorted(devices, key=lambda device: device.last_arp)
for device in devices:
    print(f"{device.name} last ARPed at {device.last_arp}")Example 6: Delete All Devices for a SiteContinuing from the last example,imagine 'Death Star' has been fully removed from your campus (pesky rebels).You need to delete all the devices associated to this site:>>>fordeviceindevices:>>>device.delete()The work has been prepared! Now, take a look at what changes will occur using eithershow_changesorshow_changes_as_tableson the Repository object.show_changesprovides a dry-run of exactly what will occur, step by step.>>>nd_repo.show_changes()1.WillDELETEDevice:Device(id=123,site_xlink=...2.WillDELETEDevice:Device(id=9000,site_xlink=...show_changes_as_tablesprovides an aggregated overview of what is going to happen.>>>nd_repo.show_changes_as_tables(terse=True)## Device Changesactionsite_xlinkasset_id_xlinkmonitorstatus_xlink---------------------------------------------------------DELETE137NoneNoneDELETE137NoneNoneYou just remembered -- your supervisor asked you to append "DONE" to the Site name to  once the devices are deleted! Lets make that change as well:>>>site.name=f'{site.name}DONE'Re-useshow_changes_as_tablesto see all the proposed changes:>>>nd_repo.show_changes_as_tables(terse=True,select_cols=['name'])## Device Changesactionname-----------------------DELETEfoo.uoregon.eduDELETEbar.uoregon.edu## Site Changesactionname------------------------UPDATE[-DeathStar-]+DeathStarDONE+If the changes all look good, then go ahead and commit them usingsave_changes:>>>nd_repo.save_changes()100%|████████████████████████████████████████|3/3[00:00<00:00,9.26it/s]ℹ Tip: For exceptionally small screens, adjustTERSEsettings viaAPI Environment Variables.Example: You can use the following settings, toprint one line per entry truncated to 16 characters:exportNETDOT_CLI_TERSE=TrueexportNETDOT_CLI_TERSE_COL_WIDTH=16exportNETDOT_CLI_TERSE_MAX_CHARS=16Example 6: Code Sample (copy-paste friendly)fordeviceindevices:device.delete()nd_repo.show_changes()nd_repo.show_changes_as_tables(terse=True)site.name=f'{site.name}DONE'nd_repo.show_changes_as_tables(terse=True,select_cols=['name'])# And save all changes using:# nd_repo.save_changes()Example 7: Show All ChangesContinuing from the prior example,you can useshow_all_changesto see a report ofallactions (including completed and failed actions):show_all_changesincludes each of:completed tasks,planned tasks, andIf there was a failure:the latest failed task.>>>nd_repo.show_all_changes()CompletedActions:1.FinishedDELETEDevice:Device(id=123,site_xlink=...2.FinishedDELETEDevice:Device(id=9000,site_xlink=...3.FinishedUPDATESite:Site(id=137,site_xlink=...RemainingActions:None,yet...Example 7: Code Sample (copy-paste friendly)nd_repo.show_all_changes()Example 8: Plan and Create a new Netdot SiteImagine you want to add a new site in Netdot, with rooms and all. Let's create a 'Test Site,' with 3 rooms and 1 closet, like the following:Site: 'Test Site'Floor: 'Test Floor'Room: 'Test Room 1'Room: 'Test Room 2'Closet: 'Test Closet 1'Room: 'Test Room 3'Let's 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'))WillCREATESite:Site(id=None,name='Test Site',aliases=None,availab...Then, using that returnedsitePython object, we will callsite.add_floor:>>>floor=site.add_floor(netdot.Floor(level='Test Floor'))WillCREATEFloor:Floor(id=None,info=None,level='Test Floor',site=S...Next, using that returnedfloorPython object, we will callfloor.add_room:>>>room1=floor.add_room(netdot.Room(name='Test Room 1'))WillCREATERoom:Room(id=None,floor=Floor(id=None,info=None,level='...>>>room2=floor.add_room(netdot.Room(name='Test Room 2'))WillCREATERoom:Room(id=None,floor=Floor(id=None,info=None,level='...>>>room3=floor.add_room(netdot.Room(name='Test Room 3'))WillCREATERoom:Room(id=None,floor=Floor(id=None,info=None,level='...Finally, we can callroom.add_closeton any of ourroom[123]objects.>>>closet=room3.add_closet(netdot.Closet(name='Test Closet 1'))WillCREATECloset:Closet(id=None,access_key_type=None,asbestos_tile...Ensure that the proposed changes look good viashow_changes:>>> 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...Uh oh! Upon reviewing you see that "Test Closet 1" is in "Test Room 3" -- it is supposed to be in Room 2! Update the room for the closet using basic assignment operator:closet.room=room2To ensure the change has occurred, use theshow_as_tables(select_cols=['name', 'room'])to make sure that the closet has the right room associated to it:ℹ Wanna see the full "Room" object in the "Closet Changes" table-output? Use the keyword argumentdisplay_full_objects=True.Alternately, set up yourNETDOT_CLI_DISPLAY_FULL_OBJECTSenvironment variable>>>repository.show_changes_as_tables(select_cols=['name','room'])## Closet Changesactionnameroom----------------------------------------------------CREATETestCloset1Room(id=None,name=TestRoom2)...trimmedforbrevity...Looks good! So, finally, save the changes to Netdot usingsave_changes()>>>nd_repo.save_changes()100%|████████████████████████████████████████|6/6[00:00<00:00,9.26it/s]ℹ The created objects will have theiridattribute populated by Netdot duringsave_changes.Example 8: Code Sample (copy-paste friendly)site=nd_repo.create_new(netdot.Site(name='Test Site'))floor=site.add_floor(netdot.Floor(level='Test Floor'))room1=floor.add_room(netdot.Room(name='Test Room 1'))room2=floor.add_room(netdot.Room(name='Test Room 2'))room3=floor.add_room(netdot.Room(name='Test Room 3'))closet=room3.add_closet(netdot.Closet(name='Test Closet 1'))nd_repo.show_changes()nd_repo.save_changes()# This is a totally non-destructive change -- let it rip!# Cleanup# site.delete()# nd_repo.save_changes()Scripted UsageOnce you have a feel for the fullPython Netdot API, you can get to writing some scripts or tools to make your daily work in Netdot automated and simple.Connecting in a Script (via Environment Variables):netdot.Repository()For starters, we need to set up aRepositoryto 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 usingpython-dotenvor similar.importosimportnetdotnd_repo=netdot.Repository(netdot_url=os.getenv('NETDOT_URL'),user=os.getenv('NETDOT_USERNAME'),password=os.getenv('NETDOT_PASSWORD'),dry_run=True,auto_update=True,print_changes=False,)Example 9: Get all Rooms fed by a SwitchGiven some Netdot Switch (Device), you can easily determine which all Rooms it feeds.Assumption: Your Netdot Cable Plant has to have its HorizontalCables well-documented.Lookup the Switch by name.name='foobar-sw09.example.com'devices=nd_repo.get_devices_where(name=name)assertlen(devices)==1,f"Found 0/more-than-one one device with name '{name}':{devices}"switch=devices[0]Collect a "Set" containing all of the rooms.ℹ Python Tip: Python'sset()is a handy data structure -- it will automatically ensure that we only collect 'distinct' rooms (duplicates will be ignored)rooms=set()forinterfaceinswitch.load_interfaces():jack=interface.load_jack()ifjack:rooms.add(jack.room)Print a nice report back out for reviewing.ℹ Python Tip: Python'ssortedandfilterfunctions can 'remove empty strings' and sort output for you!print(f"Rooms fed by{switch.name}:")print('\n'.join(sorted(filter(None,rooms))))Example 9: Code Sample (copy-paste friendly)name='foobar-sw09.example.com'devices=nd_repo.get_devices_where(name=name)assertlen(devices)==1,f"Found 0/more-than-one one device with name '{name}':{devices}"switch=devices[0]rooms=set()forinterfaceinswitch.load_interfaces():jack=interface.load_jack()ifjack:rooms.add(jack.room)print(f"Rooms fed by{switch.name}:")print('\n'.join(sorted(filter(None,rooms))))Example 10: Get all Jacks fed by a SwitchContinuing from the prior example,let's assume you want to know which jacks are actually fed by the switch within each room.Collect a "Dictionary" that maps from 'Room' to 'List of HorizontalCables'.ℹ Python Tip: Python'sdefaultdict()is very similar todict(), but it will call a 'default factory function' if a value is missing.fromcollectionsimportdefaultdictrooms=defaultdict(list)forinterfaceinswitch.load_interfaces():jack=interface.load_jack()ifjack:rooms[jack.room].append(jack)Print a nice report back out for reviewing.forroom,jacksinrooms.items():jack_list='\n'.join([jack.jackidforjackinjacks])print(f'{room}\n{jack_list}\n')Example 10: Code Sample (copy-paste friendly)# Get the Switchname='foobar-sw09.example.com'devices=nd_repo.get_devices_where(name=name)assertlen(devices)==1,f"Found 0/more-than-one one device with name '{name}':{devices}"switch=devices[0]# Get all the Jacksrooms=defaultdict(list)forinterfaceinswitch.load_interfaces():jack=interface.load_jack()ifjack:rooms[jack.room].append(jack)# Print a reportforroom,jacksinrooms.items():jack_list='\n'.join([jack.jackidforjackinjacks])print(f'{room}\n{jack_list}\n')Example 11: Update 'aliases' of several Sites in NetDotAs 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.Now, we are given a list ofSITE_IDSto which we want to update the 'alias' with the string "(odd layout)".SITE_IDS=[98,124,512,123,111]We can use Python list comprehensions to download the sites, and make the updates locally.sites=[nd_repo.get_site(id)foridinSITE_IDS]updated_sites=[site.aliases=f'{site.aliases}(odd layout)'forsiteinsites]Then, it is time to apply the updates locally to the repository's "proposed changes"forupdated_siteinupdated_sites:updated_site.update()[Optionally] Add a step in your script to review all the proposed changes usingshow_changesnd_repo.show_changes()Finally, save the changes back to Netdot usingsave_changes.nd_repo.save_changes()Example 11: Code Sample (copy-paste friendly)# Get all the sitesSITE_IDS=[98,124,512,123,111]sites=[nd_repo.get_site(id)foridinSITE_IDS]# Update the sitesforsiteinsites:site.aliases=f'{site.aliases}(odd layout)'# Save changes to Netdotnd_repo.save_changes()Advanced UsageSome features in this Netdot Python package are not key to normal use.
Those features are documented here.Proposed Changes Pickle FileIf you have been working with a Netdot Repository in dry run mode, you might want tosave a snapshot of proposed changes, or a record of completed changes.
This can be done withsave_as_pickle().ℹ By default, the file is saved with a version marker and timestamp -- this helps ensure future recoverability of the file's contents.nd_repo.proposed_changes.save_as_pickle()'netdot-cli-0.4.0-proposed_changes-2023-11-08_14-51.pickle'Recovering Proposed Changes from Pickle Fileℹ By default, aProposed Changes Pickle Filewill be created in your current working directoryifany exceptionoccurs duringsave_changes().If an error occurs when you callnd_repo.save_changes(), you will likely want to be able to look at which actions completed and which did not.
When you have a pickle file, there are two routes forward for recovering these changes: Online (connected to Netdot), or Offline.Online RecoveryTo recover while connected to Netdot, load the pickle file directly intond_repo.proposed_changesthen continue using thend_repolike normal:nd_repo=netdot.connect()# 1. Load the changesnd_repo.proposed_changes=netdot.load('netdot-cli-0.4.0-proposed_changes-2023-11-08_14-51.pickle')# 2. Review completed, planned, and failed actions:nd_repo.show_all_changes()# As a verbose reportnd_repo.show_failed_changes()# Only showing failuresnd_repo.show_changes()# Only showing planned actionsnd_repo.show_changes_as_tables(select_cols=['name','address'])# 3. If planned action look good, try to call `save_changes` (again) to complete those remaining planned actionsnd_repo.save_changes()Offline RecoveryIf you would rather work with the file offline, thenetdot.UnitOfWorkdoes expose all of the same information (with slightly more access to the underlying Python objects):# 1. Load the changesproposed_changes=netdot.load('netdot-cli-0.4.0-proposed_changes-2023-11-08_14-51.pickle')# 2. Review them as Human Readable Reportsproposed_changes.status_report()proposed_changes.failed_actions_msgs()proposed_changes.dry_run()# 3. Review them as Lists of Python objectsproposed_changes.failed_actions()proposed_changes.as_list()proposed_changes.completed_as_list()Multithreading for Parallelizing HTTP GET RequestsThenetdot.Repositoryclass can multithreadcertainHTTP requests.To enable this, set theNETDOT_CLI_THREADSEnvironment Variable before running your python code.exportNETDOT_CLI_THREADS=4You can override this number by passing thethreadskeyword argument to the Repository constructor.>>>repo=netdot.Repository(...,threads=4)Thisthreadskeyword argument can be used in theinteractive interface (discussed above)as well.>>>repo=netdot.connect(threads=4)ChangelogAll notable changes to this project will be documented in this file.The format is based onKeep a Changelog,
and this project adheres toSemantic Versioning.Notice: Major version zero (0.y.z) is for initial development. Anything MAY change at any time.
This public API shouldnotbe considered stable.⚠ NOTE:From 0.2.0 onward, this API wrapper does not ensure support for thede facto Open Source version of NetDot (GitHub)(today, we hope it will work for you with limited warnings).[Unreleased]Plan to AddThere are still 2 Python Dataclasses that just need to be implemented:ARPCacheARPCacheEntryRetrieve/update various data types that containbinary blobsvia REST API:DataCachesClosetPicturesSitePicturesFloorPicturesProvide some mechanism for "retry_failed_actions"Maybe justfailed_actions_as_newly_planned_actionsMore mechanisms for saving UnitOfWork (aka proposed_changes) to a file:save_as_excelwould be great to save all proposed changes as a workbook.save_as_CSVswould be great to save all proposed changes as a set of CSV files.Ensure compatibility with thede facto Open Source version of NetDot (GitHub).Plan to ChangeMore clarity inshow_changes_as_tablesoutput, when making updates to Netdot objects.Simplest option: just makeDISPLAY_FULL_OBJECTSdefault behavior# Today
UPDATE    015A050A   [-009 Volcanology (015) (015)-]+008+

# Cleanest option
UPDATE    015A050A   [-009-]+008+

# Simplest option
UPDATE    015A050A   [-009 Volcanology (015) (015)-]+netdot.Room(name='008',...)+Continuous Integration: Generating 'badges' for 'code coverage' and 'tests passing' would be nice to have.Enable parallelizing HTTP requests for:Thesave_changesmethod (as anoption, i.e. only for whenall your changes are independent)Allload_*methods that make "N+1 HTTP Requests."Wire upinconsistent_and_ignorable_fieldsvianetdot.configmodule.Generate a prettier document for"Feature Flags" Environment Variables.Today, we [ab]useconfigargparseto generate that documentation.GitHub Repository for this project.Ideally, this repository will live in the official "uoregon" GitHub Organization.Instead, it will likely be a 'personal repository' belonging to @ryeleo.[0.4.3]ChangedA call tosave_changeswill now print, "No changes need to be saved," if that is the case.BEFORE:save_changeswould print "Saved changes!", even if there was no changes.FIX: auto-update when updating relationships between Netdot objects:Observed:updatenever happens after updating the "room xlink field" for anetdot.HorizontalCablevia:horizontal_cable.room = new_room_objectWhen using a netdot.Repository in dry-run mode withauto_update=True: runupdatewhen setting "room"[0.4.2]ChangedFix thecircuitattribute fornetdot.Interface. This fixes the followingWARNINGs:Received unknown field(s): {'circuit_xlink': '...Unable to parse 'circuit' for 'Interface'...[0.4.1]ChangedFIX: Support for Python 3.6Our Continuous Integration solution does not include support for Python 3.6Some of the ForwardReference shenanigans we do is based on python implementation details.The 'trace' feature was usingasyncio.run, which was introduced in Python 3.7.Instead, we use the "run_until_complete" method, which works well for Python 3.6 onward.Default Connection Timeout changed from 20 down to3 seconds.This way, it doesn't take 20 seconds to notice that your VPN connection is down.[0.4.0]AddedPython 3.6 compatibility"Feature Flags" Environment Variablesℹ Usenetdot.config.help()to see full info anytime.API documentationfor this Python Netdot API Wrapper.Implemented Python Dataclasses formostall of the Netdot Database schema.All except two ArpCache data types and the four 'binary-blob-containing data types' (all listed in[Unreleased]).Basic 'CRUD' methods on each NetdotAPIDataclass:create_or_update: Create or update this object in Netdot.create:Thin wrapper aroundcreate_or_update.update:Thin wrapper aroundcreate_or_update.delete: Delete this object in Netdot.Asks for user confirmation (unless you calldelete(confirm=False))Generate methods on each NetdotAPIDataclass:add_*methods for 1-to-many relationships.Examples:site.add_deviceorsite.add_sitelink_as_farendadd_*methods for many-to-many relationships.Examples:site.add_subnet(and the more obscuresite.add_sitesubnet)†load_*methods for 1-to-many relationships.Examples:site.load_devices†load_*methods for many-to-many relationships.Examples:site.load_subnets†:load_*methods will catch any HTTP 404 errors and instead return Empty List or None.
(Useignore_404=Falseto raise HTTP 404 errors instead)Support for 'Dry Runs' when making updates (i.e. create, update, delete).See"Example 8: Plan and Create a New Netdot Site" in the User GuideAutomatically set up a UnitOfWork when callingnetdot.connectℹ Bypass 'dry runs' feature vianetdot.connect(propose_changes=False)or after the fact usingdisable_propose_changes().ℹ To selectively enable the 'dry runs' features on a Repository, useenable_propose_changes(print_changes=..., auto_update=...)Make changes just like normal.Show any proposed changes usingshow_changesorshow_changes_as_tables.ℹ You can select which columns render viashow_changes_as_tables(select_cols=[...])ℹ You can render the full nested objects viashow_changes_as_tables(display_full_objects=True)>>>nd_repo.show_changes_as_tables(select_cols=['name','label','address'])`## Room Changesactionname-------------------CREATETestRoom1## Audit Changesactionlabel-------------CREATENoneℹ You can control the CLI output (for smaller screens) in these usingshow_changes(terse=True)orshow_changes_as_tables(terse=True, select_cols=[...]).ℹ To make your 'terse' setting persistent, seeNETDOT_CLI_TERSEand related environment variables in the"Feature Flags" Environment VariablesSave those changes usingsave_changes>>>nd_repo.save_changes()100%|████████████████████████████████████████|3/3[00:00<00:00,9.26it/s]ℹ If any DELETEs are planned:save_changeswill asks the user for confirmation (unless you callsave_changes(confirm=False))After callingsave_changes, useshow_all_changesto see a report ofallactions.includes completed tasks,includes planned tasks, andif there was a failure, includes the latest failed task.TheUnitOfWorksupportssave_as_pickleto save any proposed changes to a file.It can later be loaded back up usingnetdot.load.[UNTESTED] Log a warning whenever 'Carp::croak' is returned in HTTP response.ChangedSimplify the 'MAC Address parser'Thenetdot.Repository.get_all_*methods have each been replaced with an equivalentnetdot.Repository.get_*_where.Ex.get_all_sites=>get_sites_whereEx.get_all_devices=>get_devices_wherenetdot.Device.baseMACattribute is gone, in favor of theinfer_base_MAC()method.We saw a lot of WARNING logs when the 'infer base MAC' logic was integrated into the parsing of Netdot Data Transfer Objects.web_urlproperty tested forallNetdot objects.web_url is: "A URL to view this object in Netdot's web interface."Now using the simple "/generic/view.html" endpoint (instead of trying to use a more a 'more applicable webpage' for each data type).Fix pluralization for various methods inpublic API.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 = siteDownloadTracer is now optional and more resilient:DownloadTracer is now an opt-in feature, configurable via"Feature Flags" Environment Variables, andDownloadTracer now does all its logging via asyncio (to ensure that logging doesn't interrupt your downloads)RemovedRemovedRepository.get_all_*methods (See more discussion in "Changes" above)No longer generate thewith_*andset_*methods for NetdotAPIDataclass.Do not log a message when 'info' or 'ttl' are absent from HTTP Response (they are VERY optional)Search forinconsistent_and_ignorable_fieldsin source code to learn more.Removed oldnetdot.Connectclass entirely.[0.3.2]Enable looking up a DNS Resource Record (RR) by address, usingrepo.get_rr_by_address()[0.3.1]Speed upfind_edge_port.HTTP requests are parallelized via multithreading where possible.[0.3.0]⚠ Breaking Backwards Compatibility: Severalnetdot.Repositorymethods are renamed, as discussed below.AddRepository.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:ForwardingTableForwardingTableEntryPhysAddrRenamed several generated methods to end in "ies" instead of "ys" when pluralized.Dropping Python 3.6 and 3.7 compatibility (required to usehatch)[0.2.6]Fix typo inMACAddress:formatmethod argument: "delimiter" becomes "delimiter"Additionally, force keyword arguments for theformatusing Python 3 feature.[0.2.5]Innetdot.Clientthe basedelete(..., id)method can now accept anint.Before, it only acceptedstr.[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 areplacefunction for allnetdot.dataclassesThis makes it easier to do 'update' like operations using this library.[0.2.2]Fix for REGRESSION: Thepostmethod ofnetdot.Clientdoes not work.Debugged using a simple automated test (captured by a PyVCR Cassette for reproducibility)[0.2.1]🐛 REGRESSION: Thepostmethod ofnetdot.Clientdoes not work!Fix for REGRESSION: Thenetdot.Client.Connectionclass is missing!Re-addedConnectiondirectly to client.py for now.Aliasednetdot.clientmodule 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: Thenetdot.Client.Connectionclass is MISSING!⚠ We have not ensured support for thede facto Open Source version of NetDot (GitHub).Introducing a new layer of abstraction -- a Repository and many Python dataclasses.See more info in theUser GuideProvide technical documentation in "docs/" directory (following NTS's standards).[0.1.0]Provide Python Netdot Client, as originally authored by Francisco Gray.Netdot Python API Generated DocumentationVersion 0.4.3 documentation generated on Feb 24, 2024 at 09:02AMNetdot Python API contains many generated methods.
This documentation is intended to help you understand what is available.classnetdot.RepositoryMethodsRepository.init__init__(self, netdot_url, user, password, dry_run=True, auto_update=True, print_changes=False, threads=None, trace_downloads=None, trace_threshold_bytes=None, **kwargs)Work with Netdot API using Python objects.

Args:
    netdot_url (str): The URL of the Netdot server, e.g. "https://nsdb.uoregon.edu"
    user (str): The Netdot username to use for authentication.
    password (str): The Netdot password to use for authentication.
    dry_run (bool, optional): Only **'propose changes'** until user calls `save_changes`. Defaults to True.
    print_changes (bool, optional): (When dry_run=True) Print any 'proposed changes' as they occur. Defaults to False.
    auto_update (bool, optional): (When dry_run=True) Automatically 'propose changes' on Netdot objects. Defaults to True. (If an attribute is updated on any Netdot object, that update will be immediately reflected in this repository's 'proposed changes')
    threads (int, optional): How many threads can be used when making GET requests? Defaults to config.THREADS.Repository.clear_proposed_changesclear_proposed_changes(self)Reset the proposed changes (dry run) for this Netdot Repository.Repository.create_newcreate_new(self, new_data: netdot.dataclasses.base.NetdotAPIDataclass) -> netdot.dataclasses.base.NetdotAPIDataclassCreate 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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Repository.deletedelete(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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: Could occur for various reasons. (error details can be found in Netdot's apache server logs)
    NetdotDeleteError: If the object cannot be deleted for some other reason.
    TypeError: If data is not a subclass of NetdotAPIDataclass.Repository.disable_propose_changesdisable_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.Repository.disable_trace_downloadsdisable_trace_downloads(self)Disable download tracing feature.Repository.disconnectdisconnect(self)Disconnect from Netdot.Repository.enable_propose_changesenable_propose_changes(self, print_changes=True, auto_update=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.Repository.enable_trace_downloadsenable_trace_downloads(self, threshold_bytes: int = None)Enable (and reset) the DownloadTracer object associated to this Netdot Client. (resetting it back to '0 bytes downloaded')

Args:
    threshold_bytes (bool, optional): How many bytes to wait between log messages. Defaults to config.TRACE_THRESHOLD.Repository.find_edge_portfind_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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: If the MAC Address cannot be found, or if any subsequent HTTP requests fail. (error details can be found in Netdot's apache server logs)Repository.get_accessrightget_accessright(self, id: int) -> netdot.dataclasses.users.AccessRightGet 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).Repository.get_accessrights_whereget_accessrights_where(self, *args, **url_params) -> List[netdot.dataclasses.users.AccessRight]Get info about AccessRights from Netdot.

> NOTE: This will return ALL AccessRights from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_asnget_asn(self, id: int) -> netdot.dataclasses.bgp.ASNGet 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).Repository.get_asns_whereget_asns_where(self, *args, **url_params) -> List[netdot.dataclasses.bgp.ASN]Get info about ASNs from Netdot.

> NOTE: This will return ALL ASNs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_assetget_asset(self, id: int) -> netdot.dataclasses.asset.AssetGet 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).Repository.get_assets_by_maint_contractget_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.Repository.get_assets_by_physaddrget_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.Repository.get_assets_by_product_idget_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.Repository.get_assets_whereget_assets_where(self, *args, **url_params) -> List[netdot.dataclasses.asset.Asset]Get info about Assets from Netdot.

> NOTE: This will return ALL Assets from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_auditget_audit(self, id: int) -> netdot.dataclasses.users.AuditGet 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).Repository.get_audits_whereget_audits_where(self, *args, **url_params) -> List[netdot.dataclasses.users.Audit]Get info about Audits from Netdot.

> NOTE: This will return ALL Audits from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_availabilities_whereget_availabilities_where(self, *args, **url_params) -> List[netdot.dataclasses.misc.Availability]Get info about Availabilities from Netdot.

> NOTE: This will return ALL Availabilities from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_availabilityget_availability(self, id: int) -> netdot.dataclasses.misc.AvailabilityGet 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).Repository.get_backbonecableget_backbonecable(self, id: int) -> netdot.dataclasses.cables.BackboneCableGet 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).Repository.get_backbonecables_by_end_closetget_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.Repository.get_backbonecables_by_ownerget_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.Repository.get_backbonecables_by_start_closetget_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.Repository.get_backbonecables_by_typeget_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.Repository.get_backbonecables_whereget_backbonecables_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.BackboneCable]Get info about BackboneCables from Netdot.

> NOTE: This will return ALL BackboneCables from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_bgppeeringget_bgppeering(self, id: int) -> netdot.dataclasses.bgp.BGPPeeringGet 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).Repository.get_bgppeerings_by_contactlistget_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.Repository.get_bgppeerings_by_deviceget_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.Repository.get_bgppeerings_by_entityget_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.Repository.get_bgppeerings_whereget_bgppeerings_where(self, *args, **url_params) -> List[netdot.dataclasses.bgp.BGPPeering]Get info about BGPPeerings from Netdot.

> NOTE: This will return ALL BGPPeerings from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_cablestrandget_cablestrand(self, id: int) -> netdot.dataclasses.cables.CableStrandGet 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).Repository.get_cablestrands_by_cableget_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.Repository.get_cablestrands_by_circuit_idget_cablestrands_by_circuit_id(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of CableStrands associated to a particular Circuit.

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

Returns:
    List[netdot.CableStrand]: The list of CableStrands associated to the Circuit.Repository.get_cablestrands_by_fiber_typeget_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.Repository.get_cablestrands_by_statusget_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.Repository.get_cablestrands_whereget_cablestrands_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.CableStrand]Get info about CableStrands from Netdot.

> NOTE: This will return ALL CableStrands from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_cabletypeget_cabletype(self, id: int) -> netdot.dataclasses.cables.CableTypeGet 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).Repository.get_cabletypes_whereget_cabletypes_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.CableType]Get info about CableTypes from Netdot.

> NOTE: This will return ALL CableTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_circuitget_circuit(self, id: int) -> netdot.dataclasses.cables.CircuitGet 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).Repository.get_circuits_by_linkidget_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.Repository.get_circuits_by_statusget_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.Repository.get_circuits_by_typeget_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.Repository.get_circuits_by_vendorget_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.Repository.get_circuits_whereget_circuits_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.Circuit]Get info about Circuits from Netdot.

> NOTE: This will return ALL Circuits from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_circuitstatusget_circuitstatus(self, id: int) -> netdot.dataclasses.cables.CircuitStatusGet 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).Repository.get_circuitstatuses_whereget_circuitstatuses_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.CircuitStatus]Get info about CircuitStatuses from Netdot.

> NOTE: This will return ALL CircuitStatuses from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_circuittypeget_circuittype(self, id: int) -> netdot.dataclasses.cables.CircuitTypeGet 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).Repository.get_circuittypes_whereget_circuittypes_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.CircuitType]Get info about CircuitTypes from Netdot.

> NOTE: This will return ALL CircuitTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_closetget_closet(self, id: int) -> netdot.dataclasses.site.ClosetGet 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).Repository.get_closets_by_roomget_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.Repository.get_closets_whereget_closets_where(self, *args, **url_params) -> List[netdot.dataclasses.site.Closet]Get info about Closets from Netdot.

> NOTE: This will return ALL Closets from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_contactget_contact(self, id: int) -> netdot.dataclasses.users.ContactGet 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).Repository.get_contactlistget_contactlist(self, id: int) -> netdot.dataclasses.users.ContactListGet 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).Repository.get_contactlists_whereget_contactlists_where(self, *args, **url_params) -> List[netdot.dataclasses.users.ContactList]Get info about ContactLists from Netdot.

> NOTE: This will return ALL ContactLists from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_contacts_by_contactlistget_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.Repository.get_contacts_by_contacttypeget_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.Repository.get_contacts_by_notify_emailget_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.Repository.get_contacts_by_notify_pagerget_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.Repository.get_contacts_by_notify_voiceget_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.Repository.get_contacts_by_personget_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.Repository.get_contacts_whereget_contacts_where(self, *args, **url_params) -> List[netdot.dataclasses.users.Contact]Get info about Contacts from Netdot.

> NOTE: This will return ALL Contacts from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_contacttypeget_contacttype(self, id: int) -> netdot.dataclasses.users.ContactTypeGet 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).Repository.get_contacttypes_whereget_contacttypes_where(self, *args, **url_params) -> List[netdot.dataclasses.users.ContactType]Get info about ContactTypes from Netdot.

> NOTE: This will return ALL ContactTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_deviceget_device(self, id: int) -> netdot.dataclasses.device.DeviceGet 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).Repository.get_deviceattrget_deviceattr(self, id: int) -> netdot.dataclasses.device.DeviceAttrGet 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).Repository.get_deviceattrnameget_deviceattrname(self, id: int) -> netdot.dataclasses.device.DeviceAttrNameGet 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).Repository.get_deviceattrnames_whereget_deviceattrnames_where(self, *args, **url_params) -> List[netdot.dataclasses.device.DeviceAttrName]Get info about DeviceAttrNames from Netdot.

> NOTE: This will return ALL DeviceAttrNames from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_deviceattrs_by_deviceget_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.Repository.get_deviceattrs_by_nameget_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.Repository.get_deviceattrs_whereget_deviceattrs_where(self, *args, **url_params) -> List[netdot.dataclasses.device.DeviceAttr]Get info about DeviceAttrs from Netdot.

> NOTE: This will return ALL DeviceAttrs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_devicecontactsget_devicecontacts(self, id: int) -> netdot.dataclasses.device.DeviceContactsGet 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).Repository.get_devicecontacts_by_contactlistget_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.Repository.get_devicecontacts_by_deviceget_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.Repository.get_devicecontacts_whereget_devicecontacts_where(self, *args, **url_params) -> List[netdot.dataclasses.device.DeviceContacts]Get info about DeviceContacts from Netdot.

> NOTE: This will return ALL DeviceContacts from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_devicemoduleget_devicemodule(self, id: int) -> netdot.dataclasses.device.DeviceModuleGet 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).Repository.get_devicemodules_by_asset_idget_devicemodules_by_asset_id(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of DeviceModules associated to a particular Asset.

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

Returns:
    List[netdot.DeviceModule]: The list of DeviceModules associated to the Asset.Repository.get_devicemodules_by_deviceget_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.Repository.get_devicemodules_whereget_devicemodules_where(self, *args, **url_params) -> List[netdot.dataclasses.device.DeviceModule]Get info about DeviceModules from Netdot.

> NOTE: This will return ALL DeviceModules from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_devices_by_asset_idget_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.Repository.get_devices_by_bgplocalasget_devices_by_bgplocalas(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of Devices associated to a particular ASN.

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

Returns:
    List[netdot.Device]: The list of Devices associated to the ASN.Repository.get_devices_by_host_deviceget_devices_by_host_device(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of Devices associated to a particular Device.

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

Returns:
    List[netdot.Device]: The list of Devices associated to the Device.Repository.get_devices_by_monitorstatusget_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.Repository.get_devices_by_nameget_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.Repository.get_devices_by_ownerget_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.Repository.get_devices_by_roomget_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.Repository.get_devices_by_siteget_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.Repository.get_devices_by_snmp_targetget_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.Repository.get_devices_by_used_byget_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.Repository.get_devices_whereget_devices_where(self, *args, **url_params) -> List[netdot.dataclasses.device.Device]Get info about Devices from Netdot.

> NOTE: This will return ALL Devices from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_dhcpattrget_dhcpattr(self, id: int) -> netdot.dataclasses.dhcp.DHCPAttrGet 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).Repository.get_dhcpattrnameget_dhcpattrname(self, id: int) -> netdot.dataclasses.dhcp.DHCPAttrNameGet 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).Repository.get_dhcpattrnames_whereget_dhcpattrnames_where(self, *args, **url_params) -> List[netdot.dataclasses.dhcp.DHCPAttrName]Get info about DHCPAttrNames from Netdot.

> NOTE: This will return ALL DHCPAttrNames from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_dhcpattrs_by_nameget_dhcpattrs_by_name(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of DHCPAttrs associated to a particular DHCPAttrName.

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

Returns:
    List[netdot.DHCPAttr]: The list of DHCPAttrs associated to the DHCPAttrName.Repository.get_dhcpattrs_by_scopeget_dhcpattrs_by_scope(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of DHCPAttrs associated to a particular DHCPScope.

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

Returns:
    List[netdot.DHCPAttr]: The list of DHCPAttrs associated to the DHCPScope.Repository.get_dhcpattrs_whereget_dhcpattrs_where(self, *args, **url_params) -> List[netdot.dataclasses.dhcp.DHCPAttr]Get info about DHCPAttrs from Netdot.

> NOTE: This will return ALL DHCPAttrs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_dhcpscopeget_dhcpscope(self, id: int) -> netdot.dataclasses.dhcp.DHCPScopeGet 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).Repository.get_dhcpscopes_by_containerget_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.Repository.get_dhcpscopes_by_ipblockget_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.Repository.get_dhcpscopes_by_physaddrget_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.Repository.get_dhcpscopes_by_typeget_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.Repository.get_dhcpscopes_whereget_dhcpscopes_where(self, *args, **url_params) -> List[netdot.dataclasses.dhcp.DHCPScope]Get info about DHCPScopes from Netdot.

> NOTE: This will return ALL DHCPScopes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_dhcpscopetypeget_dhcpscopetype(self, id: int) -> netdot.dataclasses.dhcp.DHCPScopeTypeGet 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).Repository.get_dhcpscopetypes_whereget_dhcpscopetypes_where(self, *args, **url_params) -> List[netdot.dataclasses.dhcp.DHCPScopeType]Get info about DHCPScopeTypes from Netdot.

> NOTE: This will return ALL DHCPScopeTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_dhcpscopeuseget_dhcpscopeuse(self, id: int) -> netdot.dataclasses.dhcp.DHCPScopeUseGet 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).Repository.get_dhcpscopeuses_by_scopeget_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.Repository.get_dhcpscopeuses_by_templateget_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.Repository.get_dhcpscopeuses_whereget_dhcpscopeuses_where(self, *args, **url_params) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]Get info about DHCPScopeUses from Netdot.

> NOTE: This will return ALL DHCPScopeUses from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_entities_by_availabilityget_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.Repository.get_entities_by_contactlistget_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.Repository.get_entities_whereget_entities_where(self, *args, **url_params) -> List[netdot.dataclasses.entity.Entity]Get info about Entities from Netdot.

> NOTE: This will return ALL Entities from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_entityget_entity(self, id: int) -> netdot.dataclasses.entity.EntityGet 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).Repository.get_entityroleget_entityrole(self, id: int) -> netdot.dataclasses.entity.EntityRoleGet 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).Repository.get_entityroles_by_entityget_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.Repository.get_entityroles_by_typeget_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.Repository.get_entityroles_whereget_entityroles_where(self, *args, **url_params) -> List[netdot.dataclasses.entity.EntityRole]Get info about EntityRoles from Netdot.

> NOTE: This will return ALL EntityRoles from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_entitysiteget_entitysite(self, id: int) -> netdot.dataclasses.entity.EntitySiteGet 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).Repository.get_entitysites_by_entityget_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.Repository.get_entitysites_by_siteget_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.Repository.get_entitysites_whereget_entitysites_where(self, *args, **url_params) -> List[netdot.dataclasses.entity.EntitySite]Get info about EntitySites from Netdot.

> NOTE: This will return ALL EntitySites from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_entitytypeget_entitytype(self, id: int) -> netdot.dataclasses.entity.EntityTypeGet 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).Repository.get_entitytypes_whereget_entitytypes_where(self, *args, **url_params) -> List[netdot.dataclasses.entity.EntityType]Get info about EntityTypes from Netdot.

> NOTE: This will return ALL EntityTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_fibertypeget_fibertype(self, id: int) -> netdot.dataclasses.cables.FiberTypeGet 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).Repository.get_fibertypes_whereget_fibertypes_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.FiberType]Get info about FiberTypes from Netdot.

> NOTE: This will return ALL FiberTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_floorget_floor(self, id: int) -> netdot.dataclasses.site.FloorGet 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).Repository.get_floors_by_siteget_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.Repository.get_floors_whereget_floors_where(self, *args, **url_params) -> List[netdot.dataclasses.site.Floor]Get info about Floors from Netdot.

> NOTE: This will return ALL Floors from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_fwtableget_fwtable(self, id: int) -> netdot.dataclasses.fwtable.FWTableGet 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).Repository.get_fwtableentries_by_fwtableget_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.Repository.get_fwtableentries_by_interfaceget_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.Repository.get_fwtableentries_by_physaddrget_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.Repository.get_fwtableentries_whereget_fwtableentries_where(self, *args, **url_params) -> List[netdot.dataclasses.fwtable.FWTableEntry]Get info about FWTableEntries from Netdot.

> NOTE: This will return ALL FWTableEntries from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_fwtableentryget_fwtableentry(self, id: int) -> netdot.dataclasses.fwtable.FWTableEntryGet 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).Repository.get_fwtables_by_deviceget_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.Repository.get_fwtables_whereget_fwtables_where(self, *args, **url_params) -> List[netdot.dataclasses.fwtable.FWTable]Get info about FWTables from Netdot.

> NOTE: This will return ALL FWTables from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_grouprightget_groupright(self, id: int) -> netdot.dataclasses.users.GroupRightGet 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).Repository.get_grouprights_by_accessrightget_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.Repository.get_grouprights_by_contactlistget_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.Repository.get_grouprights_whereget_grouprights_where(self, *args, **url_params) -> List[netdot.dataclasses.users.GroupRight]Get info about GroupRights from Netdot.

> NOTE: This will return ALL GroupRights from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_horizontalcableget_horizontalcable(self, id: int) -> netdot.dataclasses.cables.HorizontalCableGet 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).Repository.get_horizontalcables_by_closetget_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.Repository.get_horizontalcables_by_contactlistget_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.Repository.get_horizontalcables_by_roomget_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.Repository.get_horizontalcables_by_typeget_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.Repository.get_horizontalcables_whereget_horizontalcables_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.HorizontalCable]Get info about HorizontalCables from Netdot.

> NOTE: This will return ALL HorizontalCables from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_hostauditget_hostaudit(self, id: int) -> netdot.dataclasses.misc.HostAuditGet 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).Repository.get_hostaudits_whereget_hostaudits_where(self, *args, **url_params) -> List[netdot.dataclasses.misc.HostAudit]Get info about HostAudits from Netdot.

> NOTE: This will return ALL HostAudits from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_interfaceget_interface(self, id: int) -> netdot.dataclasses.interface.InterfaceGet 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).Repository.get_interfaces_by_circuitget_interfaces_by_circuit(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of Interfaces associated to a particular Circuit.

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

Returns:
    List[netdot.Interface]: The list of Interfaces associated to the Circuit.Repository.get_interfaces_by_contactlistget_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.Repository.get_interfaces_by_deviceget_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.Repository.get_interfaces_by_jackget_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.Repository.get_interfaces_by_monitorstatusget_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.Repository.get_interfaces_by_neighborget_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.Repository.get_interfaces_by_physaddrget_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.Repository.get_interfaces_whereget_interfaces_where(self, *args, **url_params) -> List[netdot.dataclasses.interface.Interface]Get info about Interfaces from Netdot.

> NOTE: This will return ALL Interfaces from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_interfacevlanget_interfacevlan(self, id: int) -> netdot.dataclasses.interface.InterfaceVLANGet 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).Repository.get_interfacevlans_by_interfaceget_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.Repository.get_interfacevlans_by_stp_instanceget_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.Repository.get_interfacevlans_by_vlanget_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.Repository.get_interfacevlans_whereget_interfacevlans_where(self, *args, **url_params) -> List[netdot.dataclasses.interface.InterfaceVLAN]Get info about InterfaceVLANs from Netdot.

> NOTE: This will return ALL InterfaceVLANs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_ipblockget_ipblock(self, id: int) -> netdot.dataclasses.ipblock.IPBlockGet 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).Repository.get_ipblock_by_addressget_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.Repository.get_ipblock_childrenget_ipblock_children(self, id: int, **url_params) -> List[ForwardRef('netdot.IPBlock')]Get the children of some parent IPBlock.

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

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

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: If no such IPBlocks are found. (error details can be found in Netdot's apache server logs)Repository.get_ipblockattrget_ipblockattr(self, id: int) -> netdot.dataclasses.ipblock.IPBlockAttrGet 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).Repository.get_ipblockattrnameget_ipblockattrname(self, id: int) -> netdot.dataclasses.ipblock.IPBlockAttrNameGet 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).Repository.get_ipblockattrnames_whereget_ipblockattrnames_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.IPBlockAttrName]Get info about IPBlockAttrNames from Netdot.

> NOTE: This will return ALL IPBlockAttrNames from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_ipblockattrs_by_ipblockget_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.Repository.get_ipblockattrs_by_nameget_ipblockattrs_by_name(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of IPBlockAttrs associated to a particular IPBlockAttrName.

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

Returns:
    List[netdot.IPBlockAttr]: The list of IPBlockAttrs associated to the IPBlockAttrName.Repository.get_ipblockattrs_whereget_ipblockattrs_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.IPBlockAttr]Get info about IPBlockAttrs from Netdot.

> NOTE: This will return ALL IPBlockAttrs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_ipblocks_by_asnget_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.Repository.get_ipblocks_by_interfaceget_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.Repository.get_ipblocks_by_ownerget_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.Repository.get_ipblocks_by_parentget_ipblocks_by_parent(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of IPBlocks associated to a particular IPBlock.

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

Returns:
    List[netdot.IPBlock]: The list of IPBlocks associated to the IPBlock.Repository.get_ipblocks_by_statusget_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.Repository.get_ipblocks_by_used_byget_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.Repository.get_ipblocks_by_vlanget_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.Repository.get_ipblocks_whereget_ipblocks_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.IPBlock]Get info about IPBlocks from Netdot.

> NOTE: This will return ALL IPBlocks from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_ipblockstatusget_ipblockstatus(self, id: int) -> netdot.dataclasses.ipblock.IPBlockStatusGet 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).Repository.get_ipblockstatuses_whereget_ipblockstatuses_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.IPBlockStatus]Get info about IPBlockStatuses from Netdot.

> NOTE: This will return ALL IPBlockStatuses from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_ipserviceget_ipservice(self, id: int) -> netdot.dataclasses.ipblock.IPServiceGet 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).Repository.get_ipservices_by_contactlistget_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.Repository.get_ipservices_by_ipget_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.Repository.get_ipservices_by_monitorstatusget_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.Repository.get_ipservices_by_serviceget_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.Repository.get_ipservices_whereget_ipservices_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.IPService]Get info about IPServices from Netdot.

> NOTE: This will return ALL IPServices from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_maintcontractget_maintcontract(self, id: int) -> netdot.dataclasses.misc.MaintContractGet 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).Repository.get_maintcontracts_by_providerget_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.Repository.get_maintcontracts_whereget_maintcontracts_where(self, *args, **url_params) -> List[netdot.dataclasses.misc.MaintContract]Get info about MaintContracts from Netdot.

> NOTE: This will return ALL MaintContracts from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_monitorstatusget_monitorstatus(self, id: int) -> netdot.dataclasses.misc.MonitorStatusGet 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).Repository.get_monitorstatuses_whereget_monitorstatuses_where(self, *args, **url_params) -> List[netdot.dataclasses.misc.MonitorStatus]Get info about MonitorStatuses from Netdot.

> NOTE: This will return ALL MonitorStatuses from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_ouiget_oui(self, id: int) -> netdot.dataclasses.device.OUIGet 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).Repository.get_ouis_whereget_ouis_where(self, *args, **url_params) -> List[netdot.dataclasses.device.OUI]Get info about OUIs from Netdot.

> NOTE: This will return ALL OUIs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_personget_person(self, id: int) -> netdot.dataclasses.users.PersonGet 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).Repository.get_persons_by_entityget_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.Repository.get_persons_by_locationget_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.Repository.get_persons_by_roomget_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.Repository.get_persons_by_user_typeget_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.Repository.get_persons_whereget_persons_where(self, *args, **url_params) -> List[netdot.dataclasses.users.Person]Get info about Persons from Netdot.

> NOTE: This will return ALL Persons from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_physaddrget_physaddr(self, id: int) -> netdot.dataclasses.physaddr.PhysAddrGet 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).Repository.get_physaddr_by_MACAddressget_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.Repository.get_physaddrattrget_physaddrattr(self, id: int) -> netdot.dataclasses.physaddr.PhysAddrAttrGet 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).Repository.get_physaddrattrnameget_physaddrattrname(self, id: int) -> netdot.dataclasses.physaddr.PhysAddrAttrNameGet 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).Repository.get_physaddrattrnames_whereget_physaddrattrnames_where(self, *args, **url_params) -> List[netdot.dataclasses.physaddr.PhysAddrAttrName]Get info about PhysAddrAttrNames from Netdot.

> NOTE: This will return ALL PhysAddrAttrNames from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_physaddrattrs_whereget_physaddrattrs_where(self, *args, **url_params) -> List[netdot.dataclasses.physaddr.PhysAddrAttr]Get info about PhysAddrAttrs from Netdot.

> NOTE: This will return ALL PhysAddrAttrs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_physaddrs_whereget_physaddrs_where(self, *args, **url_params) -> List[netdot.dataclasses.physaddr.PhysAddr]Get info about PhysAddrs from Netdot.

> NOTE: This will return ALL PhysAddrs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_productget_product(self, id: int) -> netdot.dataclasses.products.ProductGet 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).Repository.get_products_by_manufacturerget_products_by_manufacturer(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of Products associated to a particular Entity.

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

Returns:
    List[netdot.Product]: The list of Products associated to the Entity.Repository.get_products_by_typeget_products_by_type(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of Products associated to a particular ProductType.

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

Returns:
    List[netdot.Product]: The list of Products associated to the ProductType.Repository.get_products_whereget_products_where(self, *args, **url_params) -> List[netdot.dataclasses.products.Product]Get info about Products from Netdot.

> NOTE: This will return ALL Products from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_producttypeget_producttype(self, id: int) -> netdot.dataclasses.products.ProductTypeGet 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).Repository.get_producttypes_whereget_producttypes_where(self, *args, **url_params) -> List[netdot.dataclasses.products.ProductType]Get info about ProductTypes from Netdot.

> NOTE: This will return ALL ProductTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_roomget_room(self, id: int) -> netdot.dataclasses.site.RoomGet 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).Repository.get_rooms_by_floorget_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.Repository.get_rooms_whereget_rooms_where(self, *args, **url_params) -> List[netdot.dataclasses.site.Room]Get info about Rooms from Netdot.

> NOTE: This will return ALL Rooms from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrget_rr(self, id: int) -> netdot.dataclasses.dns.RRGet 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).Repository.get_rr_by_addressget_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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: If the Resource Record cannot be found. (error details can be found in Netdot's apache server logs)Repository.get_rr_by_zoneget_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.Repository.get_rr_whereget_rr_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RR]Get info about RR from Netdot.

> NOTE: This will return ALL RR from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rraddrget_rraddr(self, id: int) -> netdot.dataclasses.dns.RRADDRGet 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).Repository.get_rraddr_by_ipblockget_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.Repository.get_rraddr_by_rrget_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.Repository.get_rraddr_whereget_rraddr_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRADDR]Get info about RRADDR from Netdot.

> NOTE: This will return ALL RRADDR from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrcnameget_rrcname(self, id: int) -> netdot.dataclasses.dns.RRCNAMEGet 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).Repository.get_rrcname_by_rrget_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.Repository.get_rrcname_whereget_rrcname_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRCNAME]Get info about RRCNAME from Netdot.

> NOTE: This will return ALL RRCNAME from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrdsget_rrds(self, id: int) -> netdot.dataclasses.dns.RRDSGet 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).Repository.get_rrds_by_rrget_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.Repository.get_rrds_whereget_rrds_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRDS]Get info about RRDS from Netdot.

> NOTE: This will return ALL RRDS from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrhinfoget_rrhinfo(self, id: int) -> netdot.dataclasses.dns.RRHINFOGet 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).Repository.get_rrhinfo_by_rrget_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.Repository.get_rrhinfo_whereget_rrhinfo_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRHINFO]Get info about RRHINFO from Netdot.

> NOTE: This will return ALL RRHINFO from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrlocget_rrloc(self, id: int) -> netdot.dataclasses.dns.RRLOCGet 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).Repository.get_rrloc_by_rrget_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.Repository.get_rrloc_whereget_rrloc_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRLOC]Get info about RRLOC from Netdot.

> NOTE: This will return ALL RRLOC from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrmxget_rrmx(self, id: int) -> netdot.dataclasses.dns.RRMXGet 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).Repository.get_rrmx_by_rrget_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.Repository.get_rrmx_whereget_rrmx_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRMX]Get info about RRMX from Netdot.

> NOTE: This will return ALL RRMX from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrnaptrget_rrnaptr(self, id: int) -> netdot.dataclasses.dns.RRNAPTRGet 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).Repository.get_rrnaptr_by_rrget_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.Repository.get_rrnaptr_whereget_rrnaptr_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRNAPTR]Get info about RRNAPTR from Netdot.

> NOTE: This will return ALL RRNAPTR from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrnsget_rrns(self, id: int) -> netdot.dataclasses.dns.RRNSGet 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).Repository.get_rrns_by_rrget_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.Repository.get_rrns_whereget_rrns_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRNS]Get info about RRNS from Netdot.

> NOTE: This will return ALL RRNS from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrptrget_rrptr(self, id: int) -> netdot.dataclasses.dns.RRPTRGet 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).Repository.get_rrptr_by_ipblockget_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.Repository.get_rrptr_by_rrget_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.Repository.get_rrptr_whereget_rrptr_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRPTR]Get info about RRPTR from Netdot.

> NOTE: This will return ALL RRPTR from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrsrvget_rrsrv(self, id: int) -> netdot.dataclasses.dns.RRSRVGet 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).Repository.get_rrsrv_by_rrget_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.Repository.get_rrsrv_whereget_rrsrv_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRSRV]Get info about RRSRV from Netdot.

> NOTE: This will return ALL RRSRV from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_rrtxtget_rrtxt(self, id: int) -> netdot.dataclasses.dns.RRTXTGet 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).Repository.get_rrtxt_by_rrget_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.Repository.get_rrtxt_whereget_rrtxt_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.RRTXT]Get info about RRTXT from Netdot.

> NOTE: This will return ALL RRTXT from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_savedqueriesget_savedqueries(self, id: int) -> netdot.dataclasses.misc.SavedQueriesGet 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).Repository.get_savedqueries_whereget_savedqueries_where(self, *args, **url_params) -> List[netdot.dataclasses.misc.SavedQueries]Get info about SavedQueries from Netdot.

> NOTE: This will return ALL SavedQueries from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_schemainfoget_schemainfo(self, id: int) -> netdot.dataclasses.misc.SchemaInfoGet 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).Repository.get_schemainfo_whereget_schemainfo_where(self, *args, **url_params) -> List[netdot.dataclasses.misc.SchemaInfo]Get info about SchemaInfo from Netdot.

> NOTE: This will return ALL SchemaInfo from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_serviceget_service(self, id: int) -> netdot.dataclasses.ipblock.ServiceGet 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).Repository.get_services_whereget_services_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.Service]Get info about Services from Netdot.

> NOTE: This will return ALL Services from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_siteget_site(self, id: int) -> netdot.dataclasses.site.SiteGet 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).Repository.get_sitelinkget_sitelink(self, id: int) -> netdot.dataclasses.site.SiteLinkGet 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).Repository.get_sitelinks_by_entityget_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.Repository.get_sitelinks_by_farendget_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.Repository.get_sitelinks_by_nearendget_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.Repository.get_sitelinks_whereget_sitelinks_where(self, *args, **url_params) -> List[netdot.dataclasses.site.SiteLink]Get info about SiteLinks from Netdot.

> NOTE: This will return ALL SiteLinks from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_sites_by_availabilityget_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.Repository.get_sites_by_contactlistget_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.Repository.get_sites_whereget_sites_where(self, *args, **url_params) -> List[netdot.dataclasses.site.Site]Get info about Sites from Netdot.

> NOTE: This will return ALL Sites from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_sitesubnetget_sitesubnet(self, id: int) -> netdot.dataclasses.site.SiteSubnetGet 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).Repository.get_sitesubnets_by_siteget_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.Repository.get_sitesubnets_by_subnetget_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.Repository.get_sitesubnets_whereget_sitesubnets_where(self, *args, **url_params) -> List[netdot.dataclasses.site.SiteSubnet]Get info about SiteSubnets from Netdot.

> NOTE: This will return ALL SiteSubnets from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_spliceget_splice(self, id: int) -> netdot.dataclasses.cables.SpliceGet 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).Repository.get_splices_by_strand1get_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.Repository.get_splices_by_strand2get_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.Repository.get_splices_whereget_splices_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.Splice]Get info about Splices from Netdot.

> NOTE: This will return ALL Splices from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_stpinstanceget_stpinstance(self, id: int) -> netdot.dataclasses.device.STPInstanceGet 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).Repository.get_stpinstances_by_deviceget_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.Repository.get_stpinstances_whereget_stpinstances_where(self, *args, **url_params) -> List[netdot.dataclasses.device.STPInstance]Get info about STPInstances from Netdot.

> NOTE: This will return ALL STPInstances from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_strandstatusget_strandstatus(self, id: int) -> netdot.dataclasses.cables.StrandStatusGet 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).Repository.get_strandstatuses_whereget_strandstatuses_where(self, *args, **url_params) -> List[netdot.dataclasses.cables.StrandStatus]Get info about StrandStatuses from Netdot.

> NOTE: This will return ALL StrandStatuses from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_subnetzoneget_subnetzone(self, id: int) -> netdot.dataclasses.ipblock.SubnetZoneGet 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).Repository.get_subnetzones_by_subnetget_subnetzones_by_subnet(self, other: Union[int, netdot.dataclasses.base.NetdotAPIDataclass], **url_params)Get the list of SubnetZones associated to a particular IPBlock.

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

Returns:
    List[netdot.SubnetZone]: The list of SubnetZones associated to the IPBlock.Repository.get_subnetzones_by_zoneget_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.Repository.get_subnetzones_whereget_subnetzones_where(self, *args, **url_params) -> List[netdot.dataclasses.ipblock.SubnetZone]Get info about SubnetZones from Netdot.

> NOTE: This will return ALL SubnetZones from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_userrightget_userright(self, id: int) -> netdot.dataclasses.users.UserRightGet 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).Repository.get_userrights_by_accessrightget_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.Repository.get_userrights_by_personget_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.Repository.get_userrights_whereget_userrights_where(self, *args, **url_params) -> List[netdot.dataclasses.users.UserRight]Get info about UserRights from Netdot.

> NOTE: This will return ALL UserRights from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_usertypeget_usertype(self, id: int) -> netdot.dataclasses.users.UserTypeGet 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).Repository.get_usertypes_whereget_usertypes_where(self, *args, **url_params) -> List[netdot.dataclasses.users.UserType]Get info about UserTypes from Netdot.

> NOTE: This will return ALL UserTypes from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_vlanget_vlan(self, id: int) -> netdot.dataclasses.vlan.VLANGet 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).Repository.get_vlangroupget_vlangroup(self, id: int) -> netdot.dataclasses.vlan.VLANGroupGet 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).Repository.get_vlangroups_whereget_vlangroups_where(self, *args, **url_params) -> List[netdot.dataclasses.vlan.VLANGroup]Get info about VLANGroups from Netdot.

> NOTE: This will return ALL VLANGroups from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_vlans_by_vlangroupget_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.Repository.get_vlans_whereget_vlans_where(self, *args, **url_params) -> List[netdot.dataclasses.vlan.VLAN]Get info about VLANs from Netdot.

> NOTE: This will return ALL VLANs from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_zoneget_zone(self, id: int) -> netdot.dataclasses.dns.ZoneGet 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).Repository.get_zonealiasget_zonealias(self, id: int) -> netdot.dataclasses.dns.ZoneAliasGet 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).Repository.get_zonealiases_by_zoneget_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.Repository.get_zonealiases_whereget_zonealiases_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.ZoneAlias]Get info about ZoneAliases from Netdot.

> NOTE: This will return ALL ZoneAliases from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.get_zones_by_contactlistget_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.Repository.get_zones_whereget_zones_where(self, *args, **url_params) -> List[netdot.dataclasses.dns.Zone]Get info about Zones from Netdot.

> NOTE: This will return ALL Zones from Netdot if no kwargs (URL Parameters) are provided. 
> You can provide the special positional argument "all" if you like (for semantic clarity in your scripts).

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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors (including HTTP 404 if no matches are found). (error details can be found in Netdot's apache server logs)
    NetdotError: if some internal error happens (in this Python Netdot API wrapper, or on the Netdot Server itself).Repository.infer_productinfer_product(self, device_asset_id: str) -> 'netdot.dataclasses.Product'Infer the Product of some device, based on its `asset_id` string returned from Netdot REST API.

> NOTE: One HTTP Request is made to retrieve all Products from Netdot.
> All subsequent calls to this method will use the cached results.

Args:
    device_asset_id (str): The "asset_id" string returned from Netdot.

Returns:
    netdot.dataclasses.Product: The Product associated to this Device.

Raises:
    NetdotError: If no Product can be inferred from the provided asset_id string.Repository.reload_product_indexreload_product_index(self)Reload all Products from Netdot, and index them by name.Repository.save_changessave_changes(self, confirm=True)Save all proposed changes to Netdot.

Args:
    confirm (bool, optional): If any delete actions are planned, confirm them with the user first. Defaults to True.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)
    RuntimeError: If this Repository's multithreading lock cannot be acquired.Repository.show_all_changesshow_all_changes(self, terse=None)Show a report of all actions that have been completed, and all actions that remain to be completed (including any failed action(s)).

Args:
    terse (bool, optional): Whether to truncate each line according to your terminal width. Defaults to config.TERSE.Repository.show_changesshow_changes(self, terse=None)Show a 'dry run' of all planned changes to be made (but don't actually make the changes).

Args:
    terse (bool, optional): Whether to truncate each line according to your terminal width. Defaults to config.TERSE.Repository.show_changes_as_tablesshow_changes_as_tables(self, terse=None, select_cols=None)Show ASCII table(s) representing all of the changes to be made (grouped into tables based on Netdot Data Types).

Args:
    terse (bool, optional): Whether to truncate data in each column. Defaults to config.TERSE
    select_cols (List[str], optional): Which columns to include in the table. Defaults to None (all columns).Repository.show_failed_changesshow_failed_changes(self)Print a message for each action that has failed.

Returns:
    str: A single long message that includes all failed actions and their exceptions.Repository.updateupdate(self, new_data: netdot.dataclasses.base.NetdotAPIDataclass) -> netdot.dataclasses.base.NetdotAPIDataclassUpdate 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:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be updated for some reason. (error details can be found in Netdot's apache server logs)classnetdot.UnitOfWorkMethodsUnitOfWork.as_listas_list(self)Get a copy of to-be-completed actions in this Unit of Work.

Returns:
    List[NetdotAction]: The list of to-be-completed actions.UnitOfWork.changes_as_tableschanges_as_tables(self, terse=None, select_cols=None, display_full_objects=None) -> strShow ASCII table(s) representing all of the changes to be made (grouped into tables based on Netdot Data Types).

Args:
    terse (bool, optional): Whether to truncate data in each column. Defaults to config.TERSE
    select_cols (List[str], optional): Which columns to include in the table. Defaults to None (all columns).UnitOfWork.createcreate(self, new_data: netdot.dataclasses.base.NetdotAPIDataclass, print_changes=False, one_line=True)Create a new object in Netdot.

Args:
    new_data (netdot.NetdotAPIDataclass): The new data to use when creating the object in Netdot.
    truncate (int): Truncate the message to this many characters. Defaults to None.

Raises:
    TypeError: If new_data is not a subclass of NetdotAPIDataclass.UnitOfWork.deletedelete(self, old_data: netdot.dataclasses.base.NetdotAPIDataclass, print_changes=False, one_line=True)Delete an existing object from Netdot.

Args:
    old_data (netdot.NetdotAPIDataclass): The object that will be deleted (must include an 'id').

Raises:
    TypeError: If old_data is not a subclass of NetdotAPIDataclass.UnitOfWork.dry_rundry_run(self, terse=None) -> strShow a 'dry run' of all planned changes to be made (but don't actually make the changes).

Args:
    terse (bool, optional): Whether to truncate each line according to your terminal width. Defaults to config.TERSE.UnitOfWork.dry_run_of_actionsdry_run_of_actions(actions, one_line=True, completed=False, empty_message='None, yet...') -> strReturn a 'dry run' of some 'actions'.

Args:
    actions: The actions to be included in the dry run.
    one_line (bool, optional): Whether to truncate each line according to your terminal width. Defaults to True.
    completed (bool, optional): Whether to show actions as 'COMPLETED'. Defaults to False.

Returns:
    str: Each planned action, printed in a nicely enumerated list.UnitOfWork.failed_actionfailed_action(self, index=-1) -> netdot.actions.NetdotActionGet the action that failed when trying to save changes to Netdot.

Args:
    index (int, optional): Index for accessing the list of actions that have failed. Defaults to -1 (latest failed action).

Returns:
    actions.NetdotAction: The action that failed when trying to save changes to Netdot.UnitOfWork.failed_action_exceptionfailed_action_exception(self, index=-1) -> ExceptionGet the exception that occurred when trying to save changes to Netdot.

Args:
    index (int, optional): Index for accessing the list of exceptions that have occurred. Defaults to -1 (latest exception).

Returns:
    Exception: The exception that occurred when trying to save changes to Netdot.UnitOfWork.failed_action_msgfailed_action_msg(self, index=-1) -> strIf 'save_changes' failed on some action, use this to get info about the failed action.

Returns:
    str: A message indicating what the action would have done, and what exception occurred that prevented it from being completed.UnitOfWork.failed_actions_msgsfailed_actions_msgs(self) -> strPrint a message for each action that has failed.

Returns:
    str: A single long message that includes all failed actions and their exceptions.UnitOfWork.loadload(filename)Load a Unit of Work from a pickle file.

Args:
    filename (str): The file to load from.

Returns:
    UnitOfWork: The Unit of Work that was loaded.UnitOfWork.save_as_picklesave_as_pickle(self, filename: str = 'netdot-cli-0.4.3-proposed_changes-2024-02-24_09-02.pickle') -> strSave this Unit of Work to a file.

To be loaded in the future using :func:`load()`.

Args:
    filename (str, optional): The file to save to. Defaults to a dynamic "defaults.ERROR_PICKLE_FILENAME" (which includes version and timestamp).UnitOfWork.save_changessave_changes(self, netdot_repo: 'netdot.Repository')Save the changes back to Netdot.

Args:
    netdot_repo (netdot.Repository): The repository to use when saving changes.UnitOfWork.status_reportstatus_report(self, terse=None)Show a report of all actions that have been completed, and all actions that remain to be completed (including any failed action(s)).

Args:
    terse (bool, optional): Whether to truncate each line according to your terminal width. Defaults to config.TERSE.UnitOfWork.updateupdate(self, old_data: netdot.dataclasses.base.NetdotAPIDataclass, new_data: netdot.dataclasses.base.NetdotAPIDataclass, print_changes=False, one_line=True, deduplicate=True)Update an existing object in Netdot.

Args:
    new_data (netdot.NetdotAPIDataclass): The new data to use when updating.
    old_data (netdot.NetdotAPIDataclass): The old data that is going to be replaced.
    deduplicate (bool): If True, consolidate duplicate UPDATE actions that are added to this Unit of Work.

Raises:
    TypeError: If new_data and old_data are not the same type (or not a subclass of NetdotAPIDataclass).UnitOfWork.with_action_typeswith_action_types(self, action_types: List[ForwardRef('actions.SiteActionTypes')])Get a copy of this Unit of Work containing ONLY the selected actions.

Args:
    action_types (List[actions.NetdotAction]): The types of actions to keep.UnitOfWork.with_data_typewith_data_type(self, data_type: netdot.dataclasses.base.NetdotAPIDataclass)Get a copy of this Unit of Work containing actions of ONLY the selected data type.

Args:
    data_type (NetdotAPIDataclass): The type of data to keep.UnitOfWork.without_action_typeswithout_action_types(self, action_types: List[ForwardRef('actions.ActionTypes')])Get a copy of this Unit of Work with the selected actions removed.

Args:
    action_types (List[actions.NetdotAction]): The types of actions to be removed.classnetdot.CSVReportMethodsCSVReport.as_csvas_csv(self, delim=',', override_header: Iterable[str] = None) -> strProduce this data structure into a CSV.

Args:
    delim (str, optional): CSV delimiter to be used. Defaults to ','.
    override_header (Iterable[str], optional): Enables overriding the default CSV header (labels only, cannot be used to 'select columns'). (Must be same length as this report's default `table_header`).

Raises:
    ValueError: If override_header is invalid.

Returns:
    str: This report, in CSV format.CSVReport.save_as_filesave_as_file(self, filename: str, output_directory: str = './', **kwargs) -> intSave this CSVReport to a file.

Args:
    output_directory (str): The path where the CSV will be saved.
    filename (str): Will be used as the file name.
    kwargs: Additional arguments are passed to `as_csv()` (e.g. override_header)

Returns:
    int: Amount of bytes written to the file. (See `TextIOBase.write()`)CSVReport.sortsort(self, *sort_by: str)Sort this report. (in-place)

Args:
    sort_by (Union[str,List[str]], optional): The column(s) to be sorted by. By default sort by the first column indicated by table_header.classnetdot.AssetAttributesAttributeTypeDefaultproduct_id_xlinkintphysaddr_xlinkintmaint_contract_xlinkintcustom_serialstrdescriptionstrinfostrinventory_numberstrmaint_fromDateTimemaint_untilDateTimedate_purchasedDateTimepo_numberstrreserved_forstrserial_numberstrMethodsAsset.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this Asset.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Asset.add_devicemoduleadd_devicemodule(self, data: netdot.dataclasses.device.DeviceModule) -> netdot.dataclasses.device.DeviceModuleAdd a DeviceModule to this Asset.

Returns:
    netdot.DeviceModule: The created DeviceModule.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Asset.createcreate(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`.Asset.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Asset.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Asset.load_devicemodulesload_devicemodules(self, ignore_404=True) -> List[netdot.dataclasses.device.DeviceModule]Load the DeviceModules associated to this Asset. (Via the `DeviceModule.asset_id` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DeviceModule]: All/Any DeviceModules related to this Asset.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Asset.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this Asset. (Via the `Device.asset_id` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this Asset.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Asset.load_maint_contractload_maint_contract(self) -> netdot.dataclasses.misc.MaintContractLoad the maint_contract (MaintContract) associated to this Asset.

Returns:
    netdot.MaintContract: The full MaintContract object if available, else None.Asset.load_physaddrload_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddrLoad the physaddr (PhysAddr) associated to this Asset.

Returns:
    netdot.PhysAddr: The full PhysAddr object if available, else None.Asset.load_productload_product(self) -> netdot.dataclasses.products.ProductLoad the product_id (Product) associated to this Asset.

Returns:
    netdot.Product: The full Product object if available, else None.Asset.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Asset.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.BGPPeeringAttributesAttributeTypeDefaultbgppeeraddrstrbgppeeridstrdevice_xlinkintentity_xlinkintmonitoredboolFalseauthkeystrinfostrmax_v4_prefixesintmax_v6_prefixesintcontactlist_xlinkintlast_changedDateTimepeer_groupstrstatestrMethodsBGPPeering.createcreate(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`.BGPPeering.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),BGPPeering.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)BGPPeering.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this BGPPeering.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.BGPPeering.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this BGPPeering.

Returns:
    netdot.Device: The full Device object if available, else None.BGPPeering.load_entityload_entity(self) -> netdot.dataclasses.entity.EntityLoad the entity (Entity) associated to this BGPPeering.

Returns:
    netdot.Entity: The full Entity object if available, else None.BGPPeering.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.BGPPeering.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ASNAttributesAttributeTypeDefaultdescriptionstrinfostrnumberintrirstrMethodsASN.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this ASN.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ASN.add_ipblockadd_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this ASN.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ASN.createcreate(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`.ASN.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),ASN.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)ASN.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this ASN. (Via the `Device.bgplocalas` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this ASN.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ASN.load_ipblocksload_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this ASN.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this ASN.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ASN.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.ASN.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.HorizontalCableAttributesAttributeTypeDefaultaccountstrcloset_xlinkintcontactlist_xlinkintdatetestedDateTimefaceplateidstrinfostrinstalldateDateTimejackidstrlengthstrroom_xlinkinttestpassedboolFalsetype_xlinkintMethodsHorizontalCable.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this HorizontalCable.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)HorizontalCable.createcreate(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`.HorizontalCable.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),HorizontalCable.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)HorizontalCable.load_closetload_closet(self) -> netdot.dataclasses.site.ClosetLoad the closet (Closet) associated to this HorizontalCable.

Returns:
    netdot.Closet: The full Closet object if available, else None.HorizontalCable.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this HorizontalCable.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.HorizontalCable.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this HorizontalCable. (Via the `Interface.jack` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this HorizontalCable.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)HorizontalCable.load_roomload_room(self) -> netdot.dataclasses.site.RoomLoad the room (Room) associated to this HorizontalCable.

Returns:
    netdot.Room: The full Room object if available, else None.HorizontalCable.load_typeload_type(self) -> netdot.dataclasses.cables.CableTypeLoad the type (CableType) associated to this HorizontalCable.

Returns:
    netdot.CableType: The full CableType object if available, else None.HorizontalCable.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.HorizontalCable.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.BackboneCableAttributesAttributeTypeDefaultend_closet_xlinkintinfostrinstalldateDateTimelengthstrnamestrowner_xlinkintstart_closet_xlinkinttype_xlinkintMethodsBackboneCable.add_cablestrandadd_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrandAdd a CableStrand to this BackboneCable.

Returns:
    netdot.CableStrand: The created CableStrand.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)BackboneCable.createcreate(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`.BackboneCable.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),BackboneCable.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)BackboneCable.load_cablestrandsload_cablestrands(self, ignore_404=True) -> List[netdot.dataclasses.cables.CableStrand]Load the CableStrands associated to this BackboneCable. (Via the `CableStrand.cable` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.CableStrand]: All/Any CableStrands related to this BackboneCable.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)BackboneCable.load_end_closetload_end_closet(self) -> netdot.dataclasses.site.ClosetLoad the end_closet (Closet) associated to this BackboneCable.

Returns:
    netdot.Closet: The full Closet object if available, else None.BackboneCable.load_ownerload_owner(self) -> netdot.dataclasses.entity.EntityLoad the owner (Entity) associated to this BackboneCable.

Returns:
    netdot.Entity: The full Entity object if available, else None.BackboneCable.load_start_closetload_start_closet(self) -> netdot.dataclasses.site.ClosetLoad the start_closet (Closet) associated to this BackboneCable.

Returns:
    netdot.Closet: The full Closet object if available, else None.BackboneCable.load_typeload_type(self) -> netdot.dataclasses.cables.CableTypeLoad the type (CableType) associated to this BackboneCable.

Returns:
    netdot.CableType: The full CableType object if available, else None.BackboneCable.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.BackboneCable.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.CircuitAttributesAttributeTypeDefaultcidstrinfostrinstalldateDateTimelinkid_xlinkintspeedstrstatus_xlinkinttype_xlinkintvendor_xlinkintdatetestedDateTimelossstrMethodsCircuit.add_cablestrandadd_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrandAdd a CableStrand to this Circuit.

Returns:
    netdot.CableStrand: The created CableStrand.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Circuit.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this Circuit.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Circuit.createcreate(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`.Circuit.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Circuit.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Circuit.load_cablestrandsload_cablestrands(self, ignore_404=True) -> List[netdot.dataclasses.cables.CableStrand]Load the CableStrands associated to this Circuit. (Via the `CableStrand.circuit_id` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.CableStrand]: All/Any CableStrands related to this Circuit.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Circuit.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this Circuit.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this Circuit.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Circuit.load_linkidload_linkid(self) -> netdot.dataclasses.site.SiteLinkLoad the linkid (SiteLink) associated to this Circuit.

Returns:
    netdot.SiteLink: The full SiteLink object if available, else None.Circuit.load_statusload_status(self) -> netdot.dataclasses.cables.CircuitStatusLoad the status (CircuitStatus) associated to this Circuit.

Returns:
    netdot.CircuitStatus: The full CircuitStatus object if available, else None.Circuit.load_typeload_type(self) -> netdot.dataclasses.cables.CircuitTypeLoad the type (CircuitType) associated to this Circuit.

Returns:
    netdot.CircuitType: The full CircuitType object if available, else None.Circuit.load_vendorload_vendor(self) -> netdot.dataclasses.entity.EntityLoad the vendor (Entity) associated to this Circuit.

Returns:
    netdot.Entity: The full Entity object if available, else None.Circuit.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Circuit.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.StrandStatusAttributesAttributeTypeDefaultinfostrnamestrMethodsStrandStatus.add_cablestrandadd_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrandAdd a CableStrand to this StrandStatus.

Returns:
    netdot.CableStrand: The created CableStrand.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)StrandStatus.createcreate(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`.StrandStatus.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),StrandStatus.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)StrandStatus.load_cablestrandsload_cablestrands(self, ignore_404=True) -> List[netdot.dataclasses.cables.CableStrand]Load the CableStrands associated to this StrandStatus. (Via the `CableStrand.status` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.CableStrand]: All/Any CableStrands related to this StrandStatus.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)StrandStatus.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.StrandStatus.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.CableStrandAttributesAttributeTypeDefaultcable_xlinkintcircuit_id_xlinkintdescriptionstrfiber_type_xlinkintinfostrnamestrnumberintstatus_xlinkintMethodsCableStrand.add_splice_as_strand1add_splice_as_strand1(self, data: netdot.dataclasses.cables.Splice) -> netdot.dataclasses.cables.SpliceAdd a Splice to this CableStrand.

Returns:
    netdot.Splice: The created Splice.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableStrand.add_splice_as_strand2add_splice_as_strand2(self, data: netdot.dataclasses.cables.Splice) -> netdot.dataclasses.cables.SpliceAdd a Splice to this CableStrand.

Returns:
    netdot.Splice: The created Splice.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableStrand.createcreate(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`.CableStrand.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),CableStrand.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)CableStrand.load_cableload_cable(self) -> netdot.dataclasses.cables.BackboneCableLoad the cable (BackboneCable) associated to this CableStrand.

Returns:
    netdot.BackboneCable: The full BackboneCable object if available, else None.CableStrand.load_circuitload_circuit(self) -> netdot.dataclasses.cables.CircuitLoad the circuit_id (Circuit) associated to this CableStrand.

Returns:
    netdot.Circuit: The full Circuit object if available, else None.CableStrand.load_fiber_typeload_fiber_type(self) -> netdot.dataclasses.cables.FiberTypeLoad the fiber_type (FiberType) associated to this CableStrand.

Returns:
    netdot.FiberType: The full FiberType object if available, else None.CableStrand.load_statusload_status(self) -> netdot.dataclasses.cables.StrandStatusLoad the status (StrandStatus) associated to this CableStrand.

Returns:
    netdot.StrandStatus: The full StrandStatus object if available, else None.CableStrand.load_strand1_splicesload_strand1_splices(self, ignore_404=True) -> List[netdot.dataclasses.cables.Splice]Load the Splices associated to this CableStrand. (Via the `Splice.strand1` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Splice]: All/Any Splices related to this CableStrand.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableStrand.load_strand2_splicesload_strand2_splices(self, ignore_404=True) -> List[netdot.dataclasses.cables.Splice]Load the Splices associated to this CableStrand. (Via the `Splice.strand2` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Splice]: All/Any Splices related to this CableStrand.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableStrand.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.CableStrand.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SpliceAttributesAttributeTypeDefaultinfostrstrand1_xlinkintstrand2_xlinkintMethodsSplice.createcreate(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`.Splice.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Splice.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Splice.load_strand1load_strand1(self) -> netdot.dataclasses.cables.CableStrandLoad the strand1 (CableStrand) associated to this Splice.

Returns:
    netdot.CableStrand: The full CableStrand object if available, else None.Splice.load_strand2load_strand2(self) -> netdot.dataclasses.cables.CableStrandLoad the strand2 (CableStrand) associated to this Splice.

Returns:
    netdot.CableStrand: The full CableStrand object if available, else None.Splice.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Splice.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.CableTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsCableType.add_backbonecableadd_backbonecable(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCableAdd a BackboneCable to this CableType.

Returns:
    netdot.BackboneCable: The created BackboneCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableType.add_horizontalcableadd_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCableAdd a HorizontalCable to this CableType.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableType.createcreate(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`.CableType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),CableType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)CableType.load_backbonecablesload_backbonecables(self, ignore_404=True) -> List[netdot.dataclasses.cables.BackboneCable]Load the BackboneCables associated to this CableType. (Via the `BackboneCable.type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BackboneCable]: All/Any BackboneCables related to this CableType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableType.load_horizontalcablesload_horizontalcables(self, ignore_404=True) -> List[netdot.dataclasses.cables.HorizontalCable]Load the HorizontalCables associated to this CableType. (Via the `HorizontalCable.type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.HorizontalCable]: All/Any HorizontalCables related to this CableType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CableType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.CableType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.CircuitStatusAttributesAttributeTypeDefaultinfostrnamestrMethodsCircuitStatus.add_circuitadd_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.CircuitAdd a Circuit to this CircuitStatus.

Returns:
    netdot.Circuit: The created Circuit.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CircuitStatus.createcreate(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`.CircuitStatus.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),CircuitStatus.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)CircuitStatus.load_circuitsload_circuits(self, ignore_404=True) -> List[netdot.dataclasses.cables.Circuit]Load the Circuits associated to this CircuitStatus. (Via the `Circuit.status` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Circuit]: All/Any Circuits related to this CircuitStatus.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CircuitStatus.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.CircuitStatus.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.CircuitTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsCircuitType.add_circuitadd_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.CircuitAdd a Circuit to this CircuitType.

Returns:
    netdot.Circuit: The created Circuit.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CircuitType.createcreate(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`.CircuitType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),CircuitType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)CircuitType.load_circuitsload_circuits(self, ignore_404=True) -> List[netdot.dataclasses.cables.Circuit]Load the Circuits associated to this CircuitType. (Via the `Circuit.type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Circuit]: All/Any Circuits related to this CircuitType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)CircuitType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.CircuitType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.FiberTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsFiberType.add_cablestrandadd_cablestrand(self, data: netdot.dataclasses.cables.CableStrand) -> netdot.dataclasses.cables.CableStrandAdd a CableStrand to this FiberType.

Returns:
    netdot.CableStrand: The created CableStrand.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)FiberType.createcreate(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`.FiberType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),FiberType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)FiberType.load_cablestrandsload_cablestrands(self, ignore_404=True) -> List[netdot.dataclasses.cables.CableStrand]Load the CableStrands associated to this FiberType. (Via the `CableStrand.fiber_type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.CableStrand]: All/Any CableStrands related to this FiberType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)FiberType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.FiberType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DeviceAttributesAttributeTypeDefaultsite_xlinkintasset_id_xlinkintmonitorstatus_xlinkintname_xlinkinthost_device_xlinkintbgplocalas_xlinkintsnmp_target_xlinkintroom_xlinkintowner_xlinkintused_by_xlinkintaliasesstrbgpidstrcanautoupdateboolcollect_arpboolcollect_fwtboolcollect_stpboolcommunitystrcustomer_managedbooldate_installedDateTimedown_fromDateTimedown_untilDateTimeinfostripforwardingboollast_arpDateTimelast_fwtDateTimelast_updatedDateTimelayersstrmonitor_configboolmonitor_config_groupstrmonitoredboolmonitoring_path_costintoobnamestroobnumberstrosstrrackstrsnmp_authkeystrsnmp_authprotocolstrsnmp_bulkboolsnmp_managedboolsnmp_pollingboolsnmp_privkeystrsnmp_privprotocolstrsnmp_securitylevelstrsnmp_securitynamestrsnmp_versionintstp_enabledboolstp_mst_digeststrstp_mst_regionstrstp_mst_revstrstp_typestrsysdescriptionstrsyslocationstrsysnamestrauto_dnsboolextensionstrsnmp_conn_attemptsintsnmp_downbooloobname_2stroobnumber_2strpower_outletstrpower_outlet_2strmonitoring_templatestrMethodsDevice.add_bgppeeringadd_bgppeering(self, data: netdot.dataclasses.bgp.BGPPeering) -> netdot.dataclasses.bgp.BGPPeeringAdd a BGPPeering to this Device.

Returns:
    netdot.BGPPeering: The created BGPPeering.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_contactlistadd_contactlist(self, data: netdot.dataclasses.users.ContactList) -> netdot.dataclasses.users.ContactListAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this Device.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_deviceattradd_deviceattr(self, data: netdot.dataclasses.device.DeviceAttr) -> netdot.dataclasses.device.DeviceAttrAdd a DeviceAttr to this Device.

Returns:
    netdot.DeviceAttr: The created DeviceAttr.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_devicecontactsadd_devicecontacts(self, data: netdot.dataclasses.device.DeviceContacts) -> netdot.dataclasses.device.DeviceContactsAdd a DeviceContacts to this Device.

Returns:
    netdot.DeviceContacts: The created DeviceContacts.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_devicemoduleadd_devicemodule(self, data: netdot.dataclasses.device.DeviceModule) -> netdot.dataclasses.device.DeviceModuleAdd a DeviceModule to this Device.

Returns:
    netdot.DeviceModule: The created DeviceModule.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_fwtableadd_fwtable(self, data: netdot.dataclasses.fwtable.FWTable) -> netdot.dataclasses.fwtable.FWTableAdd a FWTable to this Device.

Returns:
    netdot.FWTable: The created FWTable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this Device.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.add_stpinstanceadd_stpinstance(self, data: netdot.dataclasses.device.STPInstance) -> netdot.dataclasses.device.STPInstanceAdd a STPInstance to this Device.

Returns:
    netdot.STPInstance: The created STPInstance.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.createcreate(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`.Device.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Device.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Device.infer_base_MACinfer_base_MAC(self) -> netdot.mac_address.MACAddressInfer the base_MAC address of this device from the asset_id (str, or Asset object).

Returns:
    MACAddress: The 'base MAC' of the device.

Raises:
    ValueError: If the asset_id does not contain a parsable MACAddress.Device.infer_productinfer_product(self) -> 'netdot.Product'Infer the Product of this device (based on its `asset_id` string returned from Netdot REST API).

> NOTE: One HTTP Request is made to retrieve all Products from Netdot.
> All subsequent calls to this method will use the cached results (see :func:`Repository.load_product_index`).

Returns:
    netdot.Product: The Product associated to this Device, or None (if there is no Product yet associated to this device).Device.load_assetload_asset(self) -> netdot.dataclasses.asset.AssetLoad the asset_id (Asset) associated to this Device.

Returns:
    netdot.Asset: The full Asset object if available, else None.Device.load_bgplocalasload_bgplocalas(self) -> netdot.dataclasses.bgp.ASNLoad the bgplocalas (ASN) associated to this Device.

Returns:
    netdot.ASN: The full ASN object if available, else None.Device.load_bgppeeringsload_bgppeerings(self, ignore_404=True) -> List[netdot.dataclasses.bgp.BGPPeering]Load the BGPPeerings associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BGPPeering]: All/Any BGPPeerings related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_contactlistsload_contactlists(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.ContactList]: Any/All ContactLists related to this Device, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_deviceattrsload_deviceattrs(self, ignore_404=True) -> List[netdot.dataclasses.device.DeviceAttr]Load the DeviceAttrs associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DeviceAttr]: All/Any DeviceAttrs related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_devicecontactsload_devicecontacts(self, ignore_404=True) -> List[netdot.dataclasses.device.DeviceContacts]Load the DeviceContacts associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DeviceContacts]: All/Any DeviceContacts related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_devicemodulesload_devicemodules(self, ignore_404=True) -> List[netdot.dataclasses.device.DeviceModule]Load the DeviceModules associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DeviceModule]: All/Any DeviceModules related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this Device. (Via the `Device.host_device` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_fwtablesload_fwtables(self, ignore_404=True) -> List[netdot.dataclasses.fwtable.FWTable]Load the FWTables associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.FWTable]: All/Any FWTables related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_host_deviceload_host_device(self) -> netdot.dataclasses.device.DeviceLoad the host_device (Device) associated to this Device.

Returns:
    netdot.Device: The full Device object if available, else None.Device.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_monitorstatusload_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatusLoad the monitorstatus (MonitorStatus) associated to this Device.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object if available, else None.Device.load_nameload_name(self) -> netdot.dataclasses.dns.RRLoad the name (RR) associated to this Device.

Returns:
    netdot.RR: The full RR object if available, else None.Device.load_ownerload_owner(self) -> netdot.dataclasses.entity.EntityLoad the owner (Entity) associated to this Device.

Returns:
    netdot.Entity: The full Entity object if available, else None.Device.load_roomload_room(self) -> netdot.dataclasses.site.RoomLoad the room (Room) associated to this Device.

Returns:
    netdot.Room: The full Room object if available, else None.Device.load_siteload_site(self) -> netdot.dataclasses.site.SiteLoad the site (Site) associated to this Device.

Returns:
    netdot.Site: The full Site object if available, else None.Device.load_snmp_targetload_snmp_target(self) -> netdot.dataclasses.ipblock.IPBlockLoad the snmp_target (IPBlock) associated to this Device.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.Device.load_stpinstancesload_stpinstances(self, ignore_404=True) -> List[netdot.dataclasses.device.STPInstance]Load the STPInstances associated to this Device.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.STPInstance]: All/Any STPInstances related to this Device.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Device.load_used_byload_used_by(self) -> netdot.dataclasses.entity.EntityLoad the used_by (Entity) associated to this Device.

Returns:
    netdot.Entity: The full Entity object if available, else None.Device.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Device.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DeviceAttrAttributesAttributeTypeDefaultdevice_xlinkintname_xlinkintvaluestrMethodsDeviceAttr.createcreate(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`.DeviceAttr.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DeviceAttr.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DeviceAttr.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this DeviceAttr.

Returns:
    netdot.Device: The full Device object if available, else None.DeviceAttr.load_nameload_name(self) -> netdot.dataclasses.device.DeviceAttrNameLoad the name (DeviceAttrName) associated to this DeviceAttr.

Returns:
    netdot.DeviceAttrName: The full DeviceAttrName object if available, else None.DeviceAttr.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DeviceAttr.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DeviceAttrNameAttributesAttributeTypeDefaultinfostrnamestrMethodsDeviceAttrName.add_deviceattradd_deviceattr(self, data: netdot.dataclasses.device.DeviceAttr) -> netdot.dataclasses.device.DeviceAttrAdd a DeviceAttr to this DeviceAttrName.

Returns:
    netdot.DeviceAttr: The created DeviceAttr.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DeviceAttrName.createcreate(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`.DeviceAttrName.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DeviceAttrName.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DeviceAttrName.load_deviceattrsload_deviceattrs(self, ignore_404=True) -> List[netdot.dataclasses.device.DeviceAttr]Load the DeviceAttrs associated to this DeviceAttrName. (Via the `DeviceAttr.name` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DeviceAttr]: All/Any DeviceAttrs related to this DeviceAttrName.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DeviceAttrName.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DeviceAttrName.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DeviceContactsAttributesAttributeTypeDefaultcontactlist_xlinkintdevice_xlinkintMethodsDeviceContacts.createcreate(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`.DeviceContacts.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DeviceContacts.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DeviceContacts.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this DeviceContacts.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.DeviceContacts.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this DeviceContacts.

Returns:
    netdot.Device: The full Device object if available, else None.DeviceContacts.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DeviceContacts.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DeviceModuleAttributesAttributeTypeDefaultclass__KEYWORD_ESCstrcontained_inintdate_installedDateTimedescriptionstrdevice_xlinkintfruboolFalsefw_revstrhw_revstrlast_updatedDateTimemodelstrnamestrnumberintposintsw_revstrtypestrasset_id_xlinkintMethodsDeviceModule.createcreate(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`.DeviceModule.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DeviceModule.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DeviceModule.load_assetload_asset(self) -> netdot.dataclasses.asset.AssetLoad the asset_id (Asset) associated to this DeviceModule.

Returns:
    netdot.Asset: The full Asset object if available, else None.DeviceModule.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this DeviceModule.

Returns:
    netdot.Device: The full Device object if available, else None.DeviceModule.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DeviceModule.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.OUIAttributesAttributeTypeDefaultouistrvendorstrMethodsOUI.createcreate(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`.OUI.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),OUI.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)OUI.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.OUI.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.STPInstanceAttributesAttributeTypeDefaultbridge_priorityintdevice_xlinkintnumberintroot_bridgestrroot_portintMethodsSTPInstance.add_interfacevlanadd_interfacevlan(self, data: netdot.dataclasses.interface.InterfaceVLAN) -> netdot.dataclasses.interface.InterfaceVLANAdd a InterfaceVLAN to this STPInstance.

Returns:
    netdot.InterfaceVLAN: The created InterfaceVLAN.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)STPInstance.createcreate(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`.STPInstance.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),STPInstance.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)STPInstance.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this STPInstance.

Returns:
    netdot.Device: The full Device object if available, else None.STPInstance.load_interfacevlansload_interfacevlans(self, ignore_404=True) -> List[netdot.dataclasses.interface.InterfaceVLAN]Load the InterfaceVLANs associated to this STPInstance. (Via the `InterfaceVLAN.stp_instance` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.InterfaceVLAN]: All/Any InterfaceVLANs related to this STPInstance.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)STPInstance.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.STPInstance.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DHCPScopeAttributesAttributeTypeDefaultipblock_xlinkinttextstrnamestrcontainer_xlinkintphysaddr_xlinkinttype_xlinkintexport_filestrenable_failoverboolFalsefailover_peerstractiveboolFalseduidstrversionintMethodsDHCPScope.add_dhcpattradd_dhcpattr(self, data: netdot.dataclasses.dhcp.DHCPAttr) -> netdot.dataclasses.dhcp.DHCPAttrAdd a DHCPAttr to this DHCPScope.

Returns:
    netdot.DHCPAttr: The created DHCPAttr.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.add_dhcpscopeadd_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScopeAdd a DHCPScope to this DHCPScope.

Returns:
    netdot.DHCPScope: The created DHCPScope.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.add_dhcpscopeuse_as_scopeadd_dhcpscopeuse_as_scope(self, data: netdot.dataclasses.dhcp.DHCPScopeUse) -> netdot.dataclasses.dhcp.DHCPScopeUseAdd a DHCPScopeUse to this DHCPScope.

Returns:
    netdot.DHCPScopeUse: The created DHCPScopeUse.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.add_dhcpscopeuse_as_templateadd_dhcpscopeuse_as_template(self, data: netdot.dataclasses.dhcp.DHCPScopeUse) -> netdot.dataclasses.dhcp.DHCPScopeUseAdd a DHCPScopeUse to this DHCPScope.

Returns:
    netdot.DHCPScopeUse: The created DHCPScopeUse.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.createcreate(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`.DHCPScope.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DHCPScope.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DHCPScope.load_containerload_container(self) -> netdot.dataclasses.dhcp.DHCPScopeLoad the container (DHCPScope) associated to this DHCPScope.

Returns:
    netdot.DHCPScope: The full DHCPScope object if available, else None.DHCPScope.load_dhcpattrsload_dhcpattrs(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPAttr]Load the DHCPAttrs associated to this DHCPScope. (Via the `DHCPAttr.scope` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPAttr]: All/Any DHCPAttrs related to this DHCPScope.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.load_dhcpscopesload_dhcpscopes(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPScope]Load the DHCPScopes associated to this DHCPScope. (Via the `DHCPScope.container` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPScope]: All/Any DHCPScopes related to this DHCPScope.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.load_ipblockload_ipblock(self) -> netdot.dataclasses.ipblock.IPBlockLoad the ipblock (IPBlock) associated to this DHCPScope.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.DHCPScope.load_physaddrload_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddrLoad the physaddr (PhysAddr) associated to this DHCPScope.

Returns:
    netdot.PhysAddr: The full PhysAddr object if available, else None.DHCPScope.load_scope_dhcpscopeusesload_scope_dhcpscopeuses(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]Load the DHCPScopeUses associated to this DHCPScope. (Via the `DHCPScopeUse.scope` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPScopeUse]: All/Any DHCPScopeUses related to this DHCPScope.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.load_template_dhcpscopeusesload_template_dhcpscopeuses(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPScopeUse]Load the DHCPScopeUses associated to this DHCPScope. (Via the `DHCPScopeUse.template` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPScopeUse]: All/Any DHCPScopeUses related to this DHCPScope.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScope.load_typeload_type(self) -> netdot.dataclasses.dhcp.DHCPScopeTypeLoad the type (DHCPScopeType) associated to this DHCPScope.

Returns:
    netdot.DHCPScopeType: The full DHCPScopeType object if available, else None.DHCPScope.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DHCPScope.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DHCPAttrAttributesAttributeTypeDefaultname_xlinkintscope_xlinkintvaluestrMethodsDHCPAttr.createcreate(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`.DHCPAttr.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DHCPAttr.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DHCPAttr.load_nameload_name(self) -> netdot.dataclasses.dhcp.DHCPAttrNameLoad the name (DHCPAttrName) associated to this DHCPAttr.

Returns:
    netdot.DHCPAttrName: The full DHCPAttrName object if available, else None.DHCPAttr.load_scopeload_scope(self) -> netdot.dataclasses.dhcp.DHCPScopeLoad the scope (DHCPScope) associated to this DHCPAttr.

Returns:
    netdot.DHCPScope: The full DHCPScope object if available, else None.DHCPAttr.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DHCPAttr.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DHCPScopeUseAttributesAttributeTypeDefaultscope_xlinkinttemplate_xlinkintMethodsDHCPScopeUse.createcreate(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`.DHCPScopeUse.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DHCPScopeUse.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DHCPScopeUse.load_scopeload_scope(self) -> netdot.dataclasses.dhcp.DHCPScopeLoad the scope (DHCPScope) associated to this DHCPScopeUse.

Returns:
    netdot.DHCPScope: The full DHCPScope object if available, else None.DHCPScopeUse.load_templateload_template(self) -> netdot.dataclasses.dhcp.DHCPScopeLoad the template (DHCPScope) associated to this DHCPScopeUse.

Returns:
    netdot.DHCPScope: The full DHCPScope object if available, else None.DHCPScopeUse.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DHCPScopeUse.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DHCPAttrNameAttributesAttributeTypeDefaultcodeintformatstrinfostrnamestrMethodsDHCPAttrName.add_dhcpattradd_dhcpattr(self, data: netdot.dataclasses.dhcp.DHCPAttr) -> netdot.dataclasses.dhcp.DHCPAttrAdd a DHCPAttr to this DHCPAttrName.

Returns:
    netdot.DHCPAttr: The created DHCPAttr.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPAttrName.createcreate(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`.DHCPAttrName.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DHCPAttrName.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DHCPAttrName.load_dhcpattrsload_dhcpattrs(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPAttr]Load the DHCPAttrs associated to this DHCPAttrName. (Via the `DHCPAttr.name` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPAttr]: All/Any DHCPAttrs related to this DHCPAttrName.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPAttrName.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DHCPAttrName.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.DHCPScopeTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsDHCPScopeType.add_dhcpscopeadd_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScopeAdd a DHCPScope to this DHCPScopeType.

Returns:
    netdot.DHCPScope: The created DHCPScope.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScopeType.createcreate(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`.DHCPScopeType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),DHCPScopeType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)DHCPScopeType.load_dhcpscopesload_dhcpscopes(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPScope]Load the DHCPScopes associated to this DHCPScopeType. (Via the `DHCPScope.type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPScope]: All/Any DHCPScopes related to this DHCPScopeType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)DHCPScopeType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.DHCPScopeType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ZoneAttributesAttributeTypeDefaultactiveboolFalsecontactlist_xlinkintexpireintinfostrminimumintnamestrrefreshintretryintrnamestrserialintdefault_ttlintexport_filestrmnamestrincludestrMethodsZone.add_rradd_rr(self, data: netdot.dataclasses.dns.RR) -> netdot.dataclasses.dns.RRAdd a RR to this Zone.

Returns:
    netdot.RR: The created RR.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Zone.add_subnetzoneadd_subnetzone(self, data: netdot.dataclasses.ipblock.SubnetZone) -> netdot.dataclasses.ipblock.SubnetZoneAdd a SubnetZone to this Zone.

Returns:
    netdot.SubnetZone: The created SubnetZone.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Zone.add_zonealiasadd_zonealias(self, data: netdot.dataclasses.dns.ZoneAlias) -> netdot.dataclasses.dns.ZoneAliasAdd a ZoneAlias to this Zone.

Returns:
    netdot.ZoneAlias: The created ZoneAlias.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Zone.createcreate(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`.Zone.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Zone.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Zone.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this Zone.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.Zone.load_rrload_rr(self, ignore_404=True) -> List[netdot.dataclasses.dns.RR]Load the RR associated to this Zone.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RR]: All/Any RR related to this Zone.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Zone.load_subnetzonesload_subnetzones(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.SubnetZone]Load the SubnetZones associated to this Zone.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SubnetZone]: All/Any SubnetZones related to this Zone.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Zone.load_zonealiasesload_zonealiases(self, ignore_404=True) -> List[netdot.dataclasses.dns.ZoneAlias]Load the ZoneAliases associated to this Zone.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.ZoneAlias]: All/Any ZoneAliases related to this Zone.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Zone.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Zone.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ZoneAliasAttributesAttributeTypeDefaultinfostrnamestrzone_xlinkintMethodsZoneAlias.createcreate(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`.ZoneAlias.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),ZoneAlias.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)ZoneAlias.load_zoneload_zone(self) -> netdot.dataclasses.dns.ZoneLoad the zone (Zone) associated to this ZoneAlias.

Returns:
    netdot.Zone: The full Zone object if available, else None.ZoneAlias.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.ZoneAlias.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRAttributesAttributeTypeDefaultactiveboolFalseauto_updateboolFalseexpirationDateTimeinfostrnamestrzone_xlinkintcreatedDateTimemodifiedDateTimeMethodsRR.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this RR.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rraddradd_rraddr(self, data: netdot.dataclasses.dns.RRADDR) -> netdot.dataclasses.dns.RRADDRAdd a RRADDR to this RR.

Returns:
    netdot.RRADDR: The created RRADDR.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrcnameadd_rrcname(self, data: netdot.dataclasses.dns.RRCNAME) -> netdot.dataclasses.dns.RRCNAMEAdd a RRCNAME to this RR.

Returns:
    netdot.RRCNAME: The created RRCNAME.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrdsadd_rrds(self, data: netdot.dataclasses.dns.RRDS) -> netdot.dataclasses.dns.RRDSAdd a RRDS to this RR.

Returns:
    netdot.RRDS: The created RRDS.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrhinfoadd_rrhinfo(self, data: netdot.dataclasses.dns.RRHINFO) -> netdot.dataclasses.dns.RRHINFOAdd a RRHINFO to this RR.

Returns:
    netdot.RRHINFO: The created RRHINFO.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrlocadd_rrloc(self, data: netdot.dataclasses.dns.RRLOC) -> netdot.dataclasses.dns.RRLOCAdd a RRLOC to this RR.

Returns:
    netdot.RRLOC: The created RRLOC.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrmxadd_rrmx(self, data: netdot.dataclasses.dns.RRMX) -> netdot.dataclasses.dns.RRMXAdd a RRMX to this RR.

Returns:
    netdot.RRMX: The created RRMX.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrnaptradd_rrnaptr(self, data: netdot.dataclasses.dns.RRNAPTR) -> netdot.dataclasses.dns.RRNAPTRAdd a RRNAPTR to this RR.

Returns:
    netdot.RRNAPTR: The created RRNAPTR.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrnsadd_rrns(self, data: netdot.dataclasses.dns.RRNS) -> netdot.dataclasses.dns.RRNSAdd a RRNS to this RR.

Returns:
    netdot.RRNS: The created RRNS.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrptradd_rrptr(self, data: netdot.dataclasses.dns.RRPTR) -> netdot.dataclasses.dns.RRPTRAdd a RRPTR to this RR.

Returns:
    netdot.RRPTR: The created RRPTR.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrsrvadd_rrsrv(self, data: netdot.dataclasses.dns.RRSRV) -> netdot.dataclasses.dns.RRSRVAdd a RRSRV to this RR.

Returns:
    netdot.RRSRV: The created RRSRV.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.add_rrtxtadd_rrtxt(self, data: netdot.dataclasses.dns.RRTXT) -> netdot.dataclasses.dns.RRTXTAdd a RRTXT to this RR.

Returns:
    netdot.RRTXT: The created RRTXT.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.createcreate(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`.RR.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RR.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RR.infer_FQDNinfer_FQDN(self) -> strInfer the Fully Qualified Domain Name (FQDN) for this Resource Record (RR).

Raises:
    ValueError: If either `name` or `zone` are not set for this RR.

Returns:
    str: The FQDN for this RR.RR.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this RR. (Via the `Device.name` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rraddrload_rraddr(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRADDR]Load the RRADDR associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRADDR]: All/Any RRADDR related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrcnameload_rrcname(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRCNAME]Load the RRCNAME associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRCNAME]: All/Any RRCNAME related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrdsload_rrds(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRDS]Load the RRDS associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRDS]: All/Any RRDS related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrhinfoload_rrhinfo(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRHINFO]Load the RRHINFO associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRHINFO]: All/Any RRHINFO related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrlocload_rrloc(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRLOC]Load the RRLOC associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRLOC]: All/Any RRLOC related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrmxload_rrmx(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRMX]Load the RRMX associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRMX]: All/Any RRMX related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrnaptrload_rrnaptr(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRNAPTR]Load the RRNAPTR associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRNAPTR]: All/Any RRNAPTR related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrnsload_rrns(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRNS]Load the RRNS associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRNS]: All/Any RRNS related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrptrload_rrptr(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRPTR]Load the RRPTR associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRPTR]: All/Any RRPTR related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrsrvload_rrsrv(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRSRV]Load the RRSRV associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRSRV]: All/Any RRSRV related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_rrtxtload_rrtxt(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRTXT]Load the RRTXT associated to this RR.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRTXT]: All/Any RRTXT related to this RR.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)RR.load_zoneload_zone(self) -> netdot.dataclasses.dns.ZoneLoad the zone (Zone) associated to this RR.

Returns:
    netdot.Zone: The full Zone object if available, else None.RR.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RR.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRADDRAttributesAttributeTypeDefaultipblock_xlinkintrr_xlinkintttlstrMethodsRRADDR.createcreate(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`.RRADDR.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRADDR.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRADDR.load_ipblockload_ipblock(self) -> netdot.dataclasses.ipblock.IPBlockLoad the ipblock (IPBlock) associated to this RRADDR.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.RRADDR.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRADDR.

Returns:
    netdot.RR: The full RR object if available, else None.RRADDR.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRADDR.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRCNAMEAttributesAttributeTypeDefaultcnamestrrr_xlinkintttlstrMethodsRRCNAME.createcreate(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`.RRCNAME.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRCNAME.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRCNAME.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRCNAME.

Returns:
    netdot.RR: The full RR object if available, else None.RRCNAME.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRCNAME.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRDSAttributesAttributeTypeDefaultalgorithmintdigeststrdigest_typeintkey_tagintrr_xlinkintttlstrMethodsRRDS.createcreate(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`.RRDS.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRDS.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRDS.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRDS.

Returns:
    netdot.RR: The full RR object if available, else None.RRDS.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRDS.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRHINFOAttributesAttributeTypeDefaultcpustrosstrrr_xlinkintttlstrMethodsRRHINFO.createcreate(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`.RRHINFO.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRHINFO.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRHINFO.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRHINFO.

Returns:
    netdot.RR: The full RR object if available, else None.RRHINFO.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRHINFO.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRLOCAttributesAttributeTypeDefaultaltitudeinthoriz_prestrlatitudestrlongitudestrrr_xlinkintsizestrttlstrvert_prestrMethodsRRLOC.createcreate(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`.RRLOC.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRLOC.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRLOC.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRLOC.

Returns:
    netdot.RR: The full RR object if available, else None.RRLOC.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRLOC.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRMXAttributesAttributeTypeDefaultexchangestrpreferenceintrr_xlinkintttlstrMethodsRRMX.createcreate(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`.RRMX.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRMX.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRMX.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRMX.

Returns:
    netdot.RR: The full RR object if available, else None.RRMX.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRMX.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRNAPTRAttributesAttributeTypeDefaultflagsstrorder_fieldintpreferenceintregexprstrreplacementstrrr_xlinkintservicesstrttlstrMethodsRRNAPTR.createcreate(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`.RRNAPTR.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRNAPTR.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRNAPTR.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRNAPTR.

Returns:
    netdot.RR: The full RR object if available, else None.RRNAPTR.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRNAPTR.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRNSAttributesAttributeTypeDefaultnsdnamestrrr_xlinkintttlstrMethodsRRNS.createcreate(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`.RRNS.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRNS.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRNS.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRNS.

Returns:
    netdot.RR: The full RR object if available, else None.RRNS.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRNS.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRPTRAttributesAttributeTypeDefaultipblock_xlinkintptrdnamestrrr_xlinkintttlstrMethodsRRPTR.createcreate(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`.RRPTR.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRPTR.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRPTR.load_ipblockload_ipblock(self) -> netdot.dataclasses.ipblock.IPBlockLoad the ipblock (IPBlock) associated to this RRPTR.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.RRPTR.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRPTR.

Returns:
    netdot.RR: The full RR object if available, else None.RRPTR.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRPTR.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRSRVAttributesAttributeTypeDefaultportintpriorityintrr_xlinkinttargetstrttlstrweightintMethodsRRSRV.createcreate(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`.RRSRV.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRSRV.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRSRV.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRSRV.

Returns:
    netdot.RR: The full RR object if available, else None.RRSRV.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRSRV.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RRTXTAttributesAttributeTypeDefaultrr_xlinkintttlstrtxtdatastrMethodsRRTXT.createcreate(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`.RRTXT.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),RRTXT.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)RRTXT.load_rrload_rr(self) -> netdot.dataclasses.dns.RRLoad the rr (RR) associated to this RRTXT.

Returns:
    netdot.RR: The full RR object if available, else None.RRTXT.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.RRTXT.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.EntityAttributesAttributeTypeDefaultacctnumberstraliasesstrasnamestrasnumberintavailability_xlinkintcontactlist_xlinkintinfostrmaint_contractstrnamestroidstrshort_namestrconfig_typestrMethodsEntity.add_backbonecableadd_backbonecable(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCableAdd a BackboneCable to this Entity.

Returns:
    netdot.BackboneCable: The created BackboneCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_bgppeeringadd_bgppeering(self, data: netdot.dataclasses.bgp.BGPPeering) -> netdot.dataclasses.bgp.BGPPeeringAdd a BGPPeering to this Entity.

Returns:
    netdot.BGPPeering: The created BGPPeering.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_circuitadd_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.CircuitAdd a Circuit to this Entity.

Returns:
    netdot.Circuit: The created Circuit.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_device_as_owneradd_device_as_owner(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this Entity.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_device_as_used_byadd_device_as_used_by(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this Entity.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_entityroleadd_entityrole(self, data: netdot.dataclasses.entity.EntityRole) -> netdot.dataclasses.entity.EntityRoleAdd a EntityRole to this Entity.

Returns:
    netdot.EntityRole: The created EntityRole.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_entitysiteadd_entitysite(self, data: netdot.dataclasses.entity.EntitySite) -> netdot.dataclasses.entity.EntitySiteAdd a EntitySite to this Entity.

Returns:
    netdot.EntitySite: The created EntitySite.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_ipblock_as_owneradd_ipblock_as_owner(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this Entity.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_ipblock_as_used_byadd_ipblock_as_used_by(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this Entity.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_maintcontractadd_maintcontract(self, data: netdot.dataclasses.misc.MaintContract) -> netdot.dataclasses.misc.MaintContractAdd a MaintContract to this Entity.

Returns:
    netdot.MaintContract: The created MaintContract.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_personadd_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.PersonAdd a Person to this Entity.

Returns:
    netdot.Person: The created Person.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_productadd_product(self, data: netdot.dataclasses.products.Product) -> netdot.dataclasses.products.ProductAdd a Product to this Entity.

Returns:
    netdot.Product: The created Product.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_siteadd_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.SiteAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_sitelinkadd_sitelink(self, data: netdot.dataclasses.site.SiteLink) -> netdot.dataclasses.site.SiteLinkAdd a SiteLink to this Entity.

Returns:
    netdot.SiteLink: The created SiteLink.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.add_typeadd_type(self, data: netdot.dataclasses.entity.EntityType) -> netdot.dataclasses.entity.EntityTypeAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.createcreate(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`.Entity.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Entity.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Entity.load_availabilityload_availability(self) -> netdot.dataclasses.misc.AvailabilityLoad the availability (Availability) associated to this Entity.

Returns:
    netdot.Availability: The full Availability object if available, else None.Entity.load_backbonecablesload_backbonecables(self, ignore_404=True) -> List[netdot.dataclasses.cables.BackboneCable]Load the BackboneCables associated to this Entity. (Via the `BackboneCable.owner` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BackboneCable]: All/Any BackboneCables related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_bgppeeringsload_bgppeerings(self, ignore_404=True) -> List[netdot.dataclasses.bgp.BGPPeering]Load the BGPPeerings associated to this Entity.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BGPPeering]: All/Any BGPPeerings related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_circuitsload_circuits(self, ignore_404=True) -> List[netdot.dataclasses.cables.Circuit]Load the Circuits associated to this Entity. (Via the `Circuit.vendor` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Circuit]: All/Any Circuits related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this Entity.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.Entity.load_entityrolesload_entityroles(self, ignore_404=True) -> List[netdot.dataclasses.entity.EntityRole]Load the EntityRoles associated to this Entity.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.EntityRole]: All/Any EntityRoles related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_entitysitesload_entitysites(self, ignore_404=True) -> List[netdot.dataclasses.entity.EntitySite]Load the EntitySites associated to this Entity.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.EntitySite]: All/Any EntitySites related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_maintcontractsload_maintcontracts(self, ignore_404=True) -> List[netdot.dataclasses.misc.MaintContract]Load the MaintContracts associated to this Entity. (Via the `MaintContract.provider` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.MaintContract]: All/Any MaintContracts related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_owner_devicesload_owner_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this Entity. (Via the `Device.owner` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_owner_ipblocksload_owner_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this Entity. (Via the `IPBlock.owner` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_personsload_persons(self, ignore_404=True) -> List[netdot.dataclasses.users.Person]Load the Persons associated to this Entity.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Person]: All/Any Persons related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_productsload_products(self, ignore_404=True) -> List[netdot.dataclasses.products.Product]Load the Products associated to this Entity. (Via the `Product.manufacturer` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Product]: All/Any Products related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_sitelinksload_sitelinks(self, ignore_404=True) -> List[netdot.dataclasses.site.SiteLink]Load the SiteLinks associated to this Entity.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SiteLink]: All/Any SiteLinks related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_sitesload_sites(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Site]: Any/All Sites related to this Entity, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_typesload_types(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.EntityType]: Any/All EntityTypes related to this Entity, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_used_by_devicesload_used_by_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this Entity. (Via the `Device.used_by` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.load_used_by_ipblocksload_used_by_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this Entity. (Via the `IPBlock.used_by` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this Entity.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Entity.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Entity.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.EntityTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsEntityType.add_entityadd_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.EntityAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)EntityType.add_entityroleadd_entityrole(self, data: netdot.dataclasses.entity.EntityRole) -> netdot.dataclasses.entity.EntityRoleAdd a EntityRole to this EntityType.

Returns:
    netdot.EntityRole: The created EntityRole.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)EntityType.createcreate(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`.EntityType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),EntityType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)EntityType.load_entitiesload_entities(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Entity]: Any/All Entities related to this EntityType, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)EntityType.load_entityrolesload_entityroles(self, ignore_404=True) -> List[netdot.dataclasses.entity.EntityRole]Load the EntityRoles associated to this EntityType. (Via the `EntityRole.type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.EntityRole]: All/Any EntityRoles related to this EntityType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)EntityType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.EntityType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.EntityRoleAttributesAttributeTypeDefaultentity_xlinkinttype_xlinkintMethodsEntityRole.createcreate(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`.EntityRole.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),EntityRole.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)EntityRole.load_entityload_entity(self) -> netdot.dataclasses.entity.EntityLoad the entity (Entity) associated to this EntityRole.

Returns:
    netdot.Entity: The full Entity object if available, else None.EntityRole.load_typeload_type(self) -> netdot.dataclasses.entity.EntityTypeLoad the type (EntityType) associated to this EntityRole.

Returns:
    netdot.EntityType: The full EntityType object if available, else None.EntityRole.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.EntityRole.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.EntitySiteAttributesAttributeTypeDefaultentity_xlinkintsite_xlinkintMethodsEntitySite.createcreate(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`.EntitySite.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),EntitySite.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)EntitySite.load_entityload_entity(self) -> netdot.dataclasses.entity.EntityLoad the entity (Entity) associated to this EntitySite.

Returns:
    netdot.Entity: The full Entity object if available, else None.EntitySite.load_siteload_site(self) -> netdot.dataclasses.site.SiteLoad the site (Site) associated to this EntitySite.

Returns:
    netdot.Site: The full Site object if available, else None.EntitySite.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.EntitySite.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.FWTableAttributesAttributeTypeDefaultdevice_xlinkinttstampDateTimeMethodsFWTable.add_fwtableentryadd_fwtableentry(self, data: netdot.dataclasses.fwtable.FWTableEntry) -> netdot.dataclasses.fwtable.FWTableEntryAdd a FWTableEntry to this FWTable.

Returns:
    netdot.FWTableEntry: The created FWTableEntry.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)FWTable.createcreate(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`.FWTable.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),FWTable.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)FWTable.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this FWTable.

Returns:
    netdot.Device: The full Device object if available, else None.FWTable.load_fwtableentriesload_fwtableentries(self, ignore_404=True) -> List[netdot.dataclasses.fwtable.FWTableEntry]Load the FWTableEntries associated to this FWTable.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.FWTableEntry]: All/Any FWTableEntries related to this FWTable.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)FWTable.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.FWTable.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.FWTableEntryAttributesAttributeTypeDefaultfwtable_xlinkintinterface_xlinkintphysaddr_xlinkintMethodsFWTableEntry.createcreate(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`.FWTableEntry.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),FWTableEntry.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)FWTableEntry.infer_timestampinfer_timestamp(self) -> datetime.datetimeInfer 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.FWTableEntry.load_fwtableload_fwtable(self) -> netdot.dataclasses.fwtable.FWTableLoad the fwtable (FWTable) associated to this FWTableEntry.

Returns:
    netdot.FWTable: The full FWTable object if available, else None.FWTableEntry.load_interfaceload_interface(self) -> netdot.dataclasses.interface.InterfaceLoad the interface (Interface) associated to this FWTableEntry.

Returns:
    netdot.Interface: The full Interface object if available, else None.FWTableEntry.load_physaddrload_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddrLoad the physaddr (PhysAddr) associated to this FWTableEntry.

Returns:
    netdot.PhysAddr: The full PhysAddr object if available, else None.FWTableEntry.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.FWTableEntry.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.InterfaceAttributesAttributeTypeDefaultphysaddr_xlinkintoper_statusstradmin_statusstradmin_duplexstrbpdu_filter_enabledboolbpdu_guard_enabledboolcontactlist_xlinkintdescriptionstrdevice_xlinkstrdoc_statusstrdown_fromDateTimedown_untilDateTimedp_remote_idstrdp_remote_ipstrdp_remote_portstrdp_remote_typestrinfostrjack_xlinkstrjack_charstrloop_guard_enabledboolmonitoredboolmonitorstatus_xlinkintnamestrneighbor_xlinkintneighbor_fixedboolneighbor_missedintnumberstroper_duplexstroverwrite_descrboolroom_charstrroot_guard_enabledboolsnmp_managedboolspeedintstp_idstrtypestrignore_ipboolauto_dnsboolcircuit_xlinkintdlcistrMethodsInterface.add_fwtableentryadd_fwtableentry(self, data: netdot.dataclasses.fwtable.FWTableEntry) -> netdot.dataclasses.fwtable.FWTableEntryAdd a FWTableEntry to this Interface.

Returns:
    netdot.FWTableEntry: The created FWTableEntry.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this Interface.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.add_interfacevlanadd_interfacevlan(self, data: netdot.dataclasses.interface.InterfaceVLAN) -> netdot.dataclasses.interface.InterfaceVLANAdd a InterfaceVLAN to this Interface.

Returns:
    netdot.InterfaceVLAN: The created InterfaceVLAN.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.add_ipblockadd_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this Interface.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.createcreate(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`.Interface.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Interface.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Interface.load_circuitload_circuit(self) -> netdot.dataclasses.cables.CircuitLoad the circuit (Circuit) associated to this Interface.

Returns:
    netdot.Circuit: The full Circuit object if available, else None.Interface.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this Interface.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.Interface.load_deviceload_device(self) -> netdot.dataclasses.device.DeviceLoad the device (Device) associated to this Interface.

Returns:
    netdot.Device: The full Device object if available, else None.Interface.load_fwtableentriesload_fwtableentries(self, ignore_404=True) -> List[netdot.dataclasses.fwtable.FWTableEntry]Load the FWTableEntries associated to this Interface.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.FWTableEntry]: All/Any FWTableEntries related to this Interface.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this Interface. (Via the `Interface.neighbor` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this Interface.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.load_interfacevlansload_interfacevlans(self, ignore_404=True) -> List[netdot.dataclasses.interface.InterfaceVLAN]Load the InterfaceVLANs associated to this Interface.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.InterfaceVLAN]: All/Any InterfaceVLANs related to this Interface.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.load_ipblocksload_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this Interface.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this Interface.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Interface.load_jackload_jack(self) -> netdot.dataclasses.cables.HorizontalCableLoad the jack (HorizontalCable) associated to this Interface.

Returns:
    netdot.HorizontalCable: The full HorizontalCable object if available, else None.Interface.load_monitorstatusload_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatusLoad the monitorstatus (MonitorStatus) associated to this Interface.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object if available, else None.Interface.load_neighborload_neighbor(self) -> netdot.dataclasses.interface.InterfaceLoad the neighbor (Interface) associated to this Interface.

Returns:
    netdot.Interface: The full Interface object if available, else None.Interface.load_physaddrload_physaddr(self) -> netdot.dataclasses.physaddr.PhysAddrLoad the physaddr (PhysAddr) associated to this Interface.

Returns:
    netdot.PhysAddr: The full PhysAddr object if available, else None.Interface.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Interface.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.InterfaceVLANAttributesAttributeTypeDefaultinterface_xlinkintstp_des_bridgestrstp_des_portstrstp_instance_xlinkintstp_statestrvlan_xlinkintMethodsInterfaceVLAN.createcreate(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`.InterfaceVLAN.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),InterfaceVLAN.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)InterfaceVLAN.load_interfaceload_interface(self) -> netdot.dataclasses.interface.InterfaceLoad the interface (Interface) associated to this InterfaceVLAN.

Returns:
    netdot.Interface: The full Interface object if available, else None.InterfaceVLAN.load_stp_instanceload_stp_instance(self) -> netdot.dataclasses.device.STPInstanceLoad the stp_instance (STPInstance) associated to this InterfaceVLAN.

Returns:
    netdot.STPInstance: The full STPInstance object if available, else None.InterfaceVLAN.load_vlanload_vlan(self) -> netdot.dataclasses.vlan.VLANLoad the vlan (VLAN) associated to this InterfaceVLAN.

Returns:
    netdot.VLAN: The full VLAN object if available, else None.InterfaceVLAN.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.InterfaceVLAN.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.IPBlockAttributesAttributeTypeDefaultaddressip_addressdescriptionstrfirst_seenDateTimeinfostrinterface_xlinkintlast_seenDateTimeowner_xlinkintparent_xlinkintprefixintstatus_xlinkintused_by_xlinkintversionintvlan_xlinkintuse_network_broadcastboolFalsemonitoredboolFalserirstrasn_xlinkintMethodsIPBlock.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this IPBlock.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_dhcpscopeadd_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScopeAdd a DHCPScope to this IPBlock.

Returns:
    netdot.DHCPScope: The created DHCPScope.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_ipblockadd_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this IPBlock.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_ipblockattradd_ipblockattr(self, data: netdot.dataclasses.ipblock.IPBlockAttr) -> netdot.dataclasses.ipblock.IPBlockAttrAdd a IPBlockAttr to this IPBlock.

Returns:
    netdot.IPBlockAttr: The created IPBlockAttr.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_ipserviceadd_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPServiceAdd a IPService to this IPBlock.

Returns:
    netdot.IPService: The created IPService.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_rraddradd_rraddr(self, data: netdot.dataclasses.dns.RRADDR) -> netdot.dataclasses.dns.RRADDRAdd a RRADDR to this IPBlock.

Returns:
    netdot.RRADDR: The created RRADDR.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_rrptradd_rrptr(self, data: netdot.dataclasses.dns.RRPTR) -> netdot.dataclasses.dns.RRPTRAdd a RRPTR to this IPBlock.

Returns:
    netdot.RRPTR: The created RRPTR.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_siteadd_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.SiteAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_sitesubnetadd_sitesubnet(self, data: netdot.dataclasses.site.SiteSubnet) -> netdot.dataclasses.site.SiteSubnetAdd a SiteSubnet to this IPBlock.

Returns:
    netdot.SiteSubnet: The created SiteSubnet.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.add_subnetzoneadd_subnetzone(self, data: netdot.dataclasses.ipblock.SubnetZone) -> netdot.dataclasses.ipblock.SubnetZoneAdd a SubnetZone to this IPBlock.

Returns:
    netdot.SubnetZone: The created SubnetZone.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.createcreate(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`.IPBlock.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),IPBlock.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)IPBlock.load_asnload_asn(self) -> netdot.dataclasses.bgp.ASNLoad the asn (ASN) associated to this IPBlock.

Returns:
    netdot.ASN: The full ASN object if available, else None.IPBlock.load_childrenload_children(self) -> List[ForwardRef('IPBlock')]Get the children of this IPBlock.

Returns:
    List[IPBlock]: The children of this IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: If no results found. (error details can be found in Netdot's apache server logs)IPBlock.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this IPBlock. (Via the `Device.snmp_target` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_dhcpscopesload_dhcpscopes(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPScope]Load the DHCPScopes associated to this IPBlock.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPScope]: All/Any DHCPScopes related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_interfaceload_interface(self) -> netdot.dataclasses.interface.InterfaceLoad the interface (Interface) associated to this IPBlock.

Returns:
    netdot.Interface: The full Interface object if available, else None.IPBlock.load_ipblockattrsload_ipblockattrs(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlockAttr]Load the IPBlockAttrs associated to this IPBlock.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlockAttr]: All/Any IPBlockAttrs related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_ipblocksload_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this IPBlock. (Via the `IPBlock.parent` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_ipservicesload_ipservices(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPService]Load the IPServices associated to this IPBlock. (Via the `IPService.ip` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPService]: All/Any IPServices related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_ownerload_owner(self) -> netdot.dataclasses.entity.EntityLoad the owner (Entity) associated to this IPBlock.

Returns:
    netdot.Entity: The full Entity object if available, else None.IPBlock.load_parentload_parent(self) -> netdot.dataclasses.ipblock.IPBlockLoad the parent (IPBlock) associated to this IPBlock.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.IPBlock.load_rraddrload_rraddr(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRADDR]Load the RRADDR associated to this IPBlock.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRADDR]: All/Any RRADDR related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_rrptrload_rrptr(self, ignore_404=True) -> List[netdot.dataclasses.dns.RRPTR]Load the RRPTR associated to this IPBlock.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.RRPTR]: All/Any RRPTR related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_sitesload_sites(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Site]: Any/All Sites related to this IPBlock, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_sitesubnetsload_sitesubnets(self, ignore_404=True) -> List[netdot.dataclasses.site.SiteSubnet]Load the SiteSubnets associated to this IPBlock. (Via the `SiteSubnet.subnet` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SiteSubnet]: All/Any SiteSubnets related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_statusload_status(self) -> netdot.dataclasses.ipblock.IPBlockStatusLoad the status (IPBlockStatus) associated to this IPBlock.

Returns:
    netdot.IPBlockStatus: The full IPBlockStatus object if available, else None.IPBlock.load_subnetzonesload_subnetzones(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.SubnetZone]Load the SubnetZones associated to this IPBlock. (Via the `SubnetZone.subnet` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SubnetZone]: All/Any SubnetZones related to this IPBlock.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlock.load_used_byload_used_by(self) -> netdot.dataclasses.entity.EntityLoad the used_by (Entity) associated to this IPBlock.

Returns:
    netdot.Entity: The full Entity object if available, else None.IPBlock.load_vlanload_vlan(self) -> netdot.dataclasses.vlan.VLANLoad the vlan (VLAN) associated to this IPBlock.

Returns:
    netdot.VLAN: The full VLAN object if available, else None.IPBlock.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.IPBlock.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.IPBlockAttrNameAttributesAttributeTypeDefaultinfostrnamestrMethodsIPBlockAttrName.add_ipblockattradd_ipblockattr(self, data: netdot.dataclasses.ipblock.IPBlockAttr) -> netdot.dataclasses.ipblock.IPBlockAttrAdd a IPBlockAttr to this IPBlockAttrName.

Returns:
    netdot.IPBlockAttr: The created IPBlockAttr.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlockAttrName.createcreate(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`.IPBlockAttrName.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),IPBlockAttrName.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)IPBlockAttrName.load_ipblockattrsload_ipblockattrs(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlockAttr]Load the IPBlockAttrs associated to this IPBlockAttrName. (Via the `IPBlockAttr.name` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlockAttr]: All/Any IPBlockAttrs related to this IPBlockAttrName.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlockAttrName.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.IPBlockAttrName.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.IPBlockStatusAttributesAttributeTypeDefaultnamestrMethodsIPBlockStatus.add_ipblockadd_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this IPBlockStatus.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlockStatus.createcreate(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`.IPBlockStatus.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),IPBlockStatus.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)IPBlockStatus.load_ipblocksload_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this IPBlockStatus. (Via the `IPBlock.status` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this IPBlockStatus.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)IPBlockStatus.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.IPBlockStatus.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ServiceAttributesAttributeTypeDefaultinfostrnamestrMethodsService.add_ipserviceadd_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPServiceAdd a IPService to this Service.

Returns:
    netdot.IPService: The created IPService.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Service.createcreate(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`.Service.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Service.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Service.load_ipservicesload_ipservices(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPService]Load the IPServices associated to this Service.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPService]: All/Any IPServices related to this Service.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Service.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Service.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.IPBlockAttrAttributesAttributeTypeDefaultipblock_xlinkintname_xlinkintvaluestrMethodsIPBlockAttr.createcreate(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`.IPBlockAttr.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),IPBlockAttr.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)IPBlockAttr.load_ipblockload_ipblock(self) -> netdot.dataclasses.ipblock.IPBlockLoad the ipblock (IPBlock) associated to this IPBlockAttr.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.IPBlockAttr.load_nameload_name(self) -> netdot.dataclasses.ipblock.IPBlockAttrNameLoad the name (IPBlockAttrName) associated to this IPBlockAttr.

Returns:
    netdot.IPBlockAttrName: The full IPBlockAttrName object if available, else None.IPBlockAttr.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.IPBlockAttr.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.IPServiceAttributesAttributeTypeDefaultcontactlist_xlinkintip_xlinkintmonitoredboolFalsemonitorstatus_xlinkintservice_xlinkintMethodsIPService.createcreate(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`.IPService.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),IPService.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)IPService.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this IPService.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.IPService.load_ipload_ip(self) -> netdot.dataclasses.ipblock.IPBlockLoad the ip (IPBlock) associated to this IPService.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.IPService.load_monitorstatusload_monitorstatus(self) -> netdot.dataclasses.misc.MonitorStatusLoad the monitorstatus (MonitorStatus) associated to this IPService.

Returns:
    netdot.MonitorStatus: The full MonitorStatus object if available, else None.IPService.load_serviceload_service(self) -> netdot.dataclasses.ipblock.ServiceLoad the service (Service) associated to this IPService.

Returns:
    netdot.Service: The full Service object if available, else None.IPService.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.IPService.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SubnetZoneAttributesAttributeTypeDefaultsubnet_xlinkintzone_xlinkintMethodsSubnetZone.createcreate(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`.SubnetZone.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),SubnetZone.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)SubnetZone.load_subnetload_subnet(self) -> netdot.dataclasses.ipblock.IPBlockLoad the subnet (IPBlock) associated to this SubnetZone.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.SubnetZone.load_zoneload_zone(self) -> netdot.dataclasses.dns.ZoneLoad the zone (Zone) associated to this SubnetZone.

Returns:
    netdot.Zone: The full Zone object if available, else None.SubnetZone.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.SubnetZone.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.AvailabilityAttributesAttributeTypeDefaultinfostrnamestrMethodsAvailability.add_contact_as_notify_emailadd_contact_as_notify_email(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.ContactAdd a Contact to this Availability.

Returns:
    netdot.Contact: The created Contact.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.add_contact_as_notify_pageradd_contact_as_notify_pager(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.ContactAdd a Contact to this Availability.

Returns:
    netdot.Contact: The created Contact.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.add_contact_as_notify_voiceadd_contact_as_notify_voice(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.ContactAdd a Contact to this Availability.

Returns:
    netdot.Contact: The created Contact.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.add_entityadd_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.EntityAdd a Entity to this Availability.

Returns:
    netdot.Entity: The created Entity.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.add_siteadd_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.SiteAdd a Site to this Availability.

Returns:
    netdot.Site: The created Site.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.createcreate(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`.Availability.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Availability.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Availability.load_entitiesload_entities(self, ignore_404=True) -> List[netdot.dataclasses.entity.Entity]Load the Entities associated to this Availability.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Entity]: All/Any Entities related to this Availability.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.load_notify_email_contactsload_notify_email_contacts(self, ignore_404=True) -> List[netdot.dataclasses.users.Contact]Load the Contacts associated to this Availability. (Via the `Contact.notify_email` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Contact]: All/Any Contacts related to this Availability.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.load_notify_pager_contactsload_notify_pager_contacts(self, ignore_404=True) -> List[netdot.dataclasses.users.Contact]Load the Contacts associated to this Availability. (Via the `Contact.notify_pager` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Contact]: All/Any Contacts related to this Availability.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.load_notify_voice_contactsload_notify_voice_contacts(self, ignore_404=True) -> List[netdot.dataclasses.users.Contact]Load the Contacts associated to this Availability. (Via the `Contact.notify_voice` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Contact]: All/Any Contacts related to this Availability.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.load_sitesload_sites(self, ignore_404=True) -> List[netdot.dataclasses.site.Site]Load the Sites associated to this Availability.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Site]: All/Any Sites related to this Availability.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Availability.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Availability.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.HostAuditAttributesAttributeTypeDefaulttstampDateTimezonestrscopestrpendingboolFalseMethodsHostAudit.createcreate(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`.HostAudit.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),HostAudit.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)HostAudit.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.HostAudit.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.MaintContractAttributesAttributeTypeDefaultinfostrnumberstrprovider_xlinkintMethodsMaintContract.add_assetadd_asset(self, data: netdot.dataclasses.asset.Asset) -> netdot.dataclasses.asset.AssetAdd a Asset to this MaintContract.

Returns:
    netdot.Asset: The created Asset.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MaintContract.createcreate(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`.MaintContract.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),MaintContract.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)MaintContract.load_assetsload_assets(self, ignore_404=True) -> List[netdot.dataclasses.asset.Asset]Load the Assets associated to this MaintContract. (Via the `Asset.maint_contract` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Asset]: All/Any Assets related to this MaintContract.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MaintContract.load_providerload_provider(self) -> netdot.dataclasses.entity.EntityLoad the provider (Entity) associated to this MaintContract.

Returns:
    netdot.Entity: The full Entity object if available, else None.MaintContract.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.MaintContract.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.MonitorStatusAttributesAttributeTypeDefaultinfostrnamestrMethodsMonitorStatus.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this MonitorStatus.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MonitorStatus.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this MonitorStatus.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MonitorStatus.add_ipserviceadd_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPServiceAdd a IPService to this MonitorStatus.

Returns:
    netdot.IPService: The created IPService.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MonitorStatus.createcreate(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`.MonitorStatus.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),MonitorStatus.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)MonitorStatus.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this MonitorStatus.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this MonitorStatus.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MonitorStatus.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this MonitorStatus.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this MonitorStatus.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MonitorStatus.load_ipservicesload_ipservices(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPService]Load the IPServices associated to this MonitorStatus.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPService]: All/Any IPServices related to this MonitorStatus.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)MonitorStatus.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.MonitorStatus.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SavedQueriesAttributesAttributeTypeDefaultnamestrquerytextstrMethodsSavedQueries.createcreate(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`.SavedQueries.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),SavedQueries.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)SavedQueries.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.SavedQueries.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SchemaInfoAttributesAttributeTypeDefaultinfostrversionstrMethodsSchemaInfo.createcreate(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`.SchemaInfo.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),SchemaInfo.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)SchemaInfo.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.SchemaInfo.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.PhysAddrAttributesAttributeTypeDefaultaddressMACAddressstaticboolFalsefirst_seenDateTimelast_seenDateTimeMethodsPhysAddr.add_assetadd_asset(self, data: netdot.dataclasses.asset.Asset) -> netdot.dataclasses.asset.AssetAdd a Asset to this PhysAddr.

Returns:
    netdot.Asset: The created Asset.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.add_dhcpscopeadd_dhcpscope(self, data: netdot.dataclasses.dhcp.DHCPScope) -> netdot.dataclasses.dhcp.DHCPScopeAdd a DHCPScope to this PhysAddr.

Returns:
    netdot.DHCPScope: The created DHCPScope.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.add_fwtableentryadd_fwtableentry(self, data: netdot.dataclasses.fwtable.FWTableEntry) -> netdot.dataclasses.fwtable.FWTableEntryAdd a FWTableEntry to this PhysAddr.

Returns:
    netdot.FWTableEntry: The created FWTableEntry.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this PhysAddr.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.createcreate(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`.PhysAddr.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),PhysAddr.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)PhysAddr.load_assetsload_assets(self, ignore_404=True) -> List[netdot.dataclasses.asset.Asset]Load the Assets associated to this PhysAddr.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Asset]: All/Any Assets related to this PhysAddr.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.load_dhcpscopesload_dhcpscopes(self, ignore_404=True) -> List[netdot.dataclasses.dhcp.DHCPScope]Load the DHCPScopes associated to this PhysAddr.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DHCPScope]: All/Any DHCPScopes related to this PhysAddr.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.load_fwtableentriesload_fwtableentries(self, ignore_404=True) -> List[netdot.dataclasses.fwtable.FWTableEntry]Load the FWTableEntries associated to this PhysAddr.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.FWTableEntry]: All/Any FWTableEntries related to this PhysAddr.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this PhysAddr.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this PhysAddr.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)PhysAddr.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.PhysAddr.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.PhysAddrAttrNameAttributesAttributeTypeDefaultinfostrnamestrMethodsPhysAddrAttrName.createcreate(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`.PhysAddrAttrName.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),PhysAddrAttrName.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)PhysAddrAttrName.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.PhysAddrAttrName.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.PhysAddrAttrAttributesAttributeTypeDefaultnameintphysaddrintvaluestrMethodsPhysAddrAttr.createcreate(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`.PhysAddrAttr.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),PhysAddrAttr.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)PhysAddrAttr.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.PhysAddrAttr.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ProductTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsProductType.add_productadd_product(self, data: netdot.dataclasses.products.Product) -> netdot.dataclasses.products.ProductAdd a Product to this ProductType.

Returns:
    netdot.Product: The created Product.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ProductType.createcreate(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`.ProductType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),ProductType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)ProductType.load_productsload_products(self, ignore_404=True) -> List[netdot.dataclasses.products.Product]Load the Products associated to this ProductType. (Via the `Product.type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Product]: All/Any Products related to this ProductType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ProductType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.ProductType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ProductAttributesAttributeTypeDefaultdescriptionstrinfostrmanufacturer_xlinkintnamestrsysobjectidstrtype_xlinkintlatest_osstrpart_numberstrconfig_typestrMethodsProduct.add_assetadd_asset(self, data: netdot.dataclasses.asset.Asset) -> netdot.dataclasses.asset.AssetAdd a Asset to this Product.

Returns:
    netdot.Asset: The created Asset.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Product.createcreate(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`.Product.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Product.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Product.load_assetsload_assets(self, ignore_404=True) -> List[netdot.dataclasses.asset.Asset]Load the Assets associated to this Product. (Via the `Asset.product_id` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Asset]: All/Any Assets related to this Product.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Product.load_manufacturerload_manufacturer(self) -> netdot.dataclasses.entity.EntityLoad the manufacturer (Entity) associated to this Product.

Returns:
    netdot.Entity: The full Entity object if available, else None.Product.load_typeload_type(self) -> netdot.dataclasses.products.ProductTypeLoad the type (ProductType) associated to this Product.

Returns:
    netdot.ProductType: The full ProductType object if available, else None.Product.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Product.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SiteAttributesAttributeTypeDefaultnamestraliasesstravailability_xlinkintcontactlist_xlinkintgsfstrnumberstrstreet1strstreet2strstatestrcitystrcountrystrzipstrpoboxstrinfostrMethodsSite.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this Site.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_entityadd_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.EntityAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_entitysiteadd_entitysite(self, data: netdot.dataclasses.entity.EntitySite) -> netdot.dataclasses.entity.EntitySiteAdd a EntitySite to this Site.

Returns:
    netdot.EntitySite: The created EntitySite.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_flooradd_floor(self, data: netdot.dataclasses.site.Floor) -> netdot.dataclasses.site.FloorAdd a Floor to this Site.

Returns:
    netdot.Floor: The created Floor.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_personadd_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.PersonAdd a Person to this Site.

Returns:
    netdot.Person: The created Person.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_sitelink_as_farendadd_sitelink_as_farend(self, data: netdot.dataclasses.site.SiteLink) -> netdot.dataclasses.site.SiteLinkAdd a SiteLink to this Site.

Returns:
    netdot.SiteLink: The created SiteLink.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_sitelink_as_nearendadd_sitelink_as_nearend(self, data: netdot.dataclasses.site.SiteLink) -> netdot.dataclasses.site.SiteLinkAdd a SiteLink to this Site.

Returns:
    netdot.SiteLink: The created SiteLink.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_sitesubnetadd_sitesubnet(self, data: netdot.dataclasses.site.SiteSubnet) -> netdot.dataclasses.site.SiteSubnetAdd a SiteSubnet to this Site.

Returns:
    netdot.SiteSubnet: The created SiteSubnet.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.add_subnetadd_subnet(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.createcreate(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`.Site.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Site.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Site.load_availabilityload_availability(self) -> netdot.dataclasses.misc.AvailabilityLoad the availability (Availability) associated to this Site.

Returns:
    netdot.Availability: The full Availability object if available, else None.Site.load_closetsload_closets(self) -> List[ForwardRef('Closet')]Load all closets for this site.

> NOTE: This will make approximately N+1 HTTP Requests (where N is the number of **rooms** in this site).Site.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this Site.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.Site.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this Site.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_entitiesload_entities(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Entity]: Any/All Entities related to this Site, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_entitysitesload_entitysites(self, ignore_404=True) -> List[netdot.dataclasses.entity.EntitySite]Load the EntitySites associated to this Site.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.EntitySite]: All/Any EntitySites related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_farend_sitelinksload_farend_sitelinks(self, ignore_404=True) -> List[netdot.dataclasses.site.SiteLink]Load the SiteLinks associated to this Site. (Via the `SiteLink.farend` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SiteLink]: All/Any SiteLinks related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_floorsload_floors(self, ignore_404=True) -> List[netdot.dataclasses.site.Floor]Load the Floors associated to this Site.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Floor]: All/Any Floors related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_nearend_sitelinksload_nearend_sitelinks(self, ignore_404=True) -> List[netdot.dataclasses.site.SiteLink]Load the SiteLinks associated to this Site. (Via the `SiteLink.nearend` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SiteLink]: All/Any SiteLinks related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_personsload_persons(self, ignore_404=True) -> List[netdot.dataclasses.users.Person]Load the Persons associated to this Site. (Via the `Person.location` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Person]: All/Any Persons related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_roomsload_rooms(self) -> List[ForwardRef('Room')]Load all rooms for this site.

> NOTE: This will make N+1 HTTP Requests (where N is the number of **floors** in this site).Site.load_sitesubnetsload_sitesubnets(self, ignore_404=True) -> List[netdot.dataclasses.site.SiteSubnet]Load the SiteSubnets associated to this Site.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.SiteSubnet]: All/Any SiteSubnets related to this Site.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.load_subnetsload_subnets(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: Any/All IPBlocks related to this Site, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Site.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Site.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SiteSubnetAttributesAttributeTypeDefaultsite_xlinkintsubnet_xlinkintMethodsSiteSubnet.createcreate(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`.SiteSubnet.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),SiteSubnet.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)SiteSubnet.load_siteload_site(self) -> netdot.dataclasses.site.SiteLoad the site (Site) associated to this SiteSubnet.

Returns:
    netdot.Site: The full Site object if available, else None.SiteSubnet.load_subnetload_subnet(self) -> netdot.dataclasses.ipblock.IPBlockLoad the subnet (IPBlock) associated to this SiteSubnet.

Returns:
    netdot.IPBlock: The full IPBlock object if available, else None.SiteSubnet.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.SiteSubnet.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.FloorAttributesAttributeTypeDefaultinfostrlevelstrsite_xlinkintMethodsFloor.add_roomadd_room(self, data: netdot.dataclasses.site.Room) -> netdot.dataclasses.site.RoomAdd a Room to this Floor.

Returns:
    netdot.Room: The created Room.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Floor.createcreate(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`.Floor.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Floor.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Floor.load_roomsload_rooms(self, ignore_404=True) -> List[netdot.dataclasses.site.Room]Load the Rooms associated to this Floor.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Room]: All/Any Rooms related to this Floor.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Floor.load_siteload_site(self) -> netdot.dataclasses.site.SiteLoad the site (Site) associated to this Floor.

Returns:
    netdot.Site: The full Site object if available, else None.Floor.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Floor.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.RoomAttributesAttributeTypeDefaultfloor_xlinkintnamestrMethodsRoom.add_closetadd_closet(self, data: netdot.dataclasses.site.Closet) -> netdot.dataclasses.site.ClosetAdd a Closet to this Room.

Returns:
    netdot.Closet: The created Closet.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd a Device to this Room.

Returns:
    netdot.Device: The created Device.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.add_horizontalcableadd_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCableAdd a HorizontalCable to this Room.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.add_personadd_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.PersonAdd a Person to this Room.

Returns:
    netdot.Person: The created Person.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.createcreate(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`.Room.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Room.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Room.load_closetsload_closets(self, ignore_404=True) -> List[netdot.dataclasses.site.Closet]Load the Closets associated to this Room.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Closet]: All/Any Closets related to this Room.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.load_devicesload_devices(self, ignore_404=True) -> List[netdot.dataclasses.device.Device]Load the Devices associated to this Room.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: All/Any Devices related to this Room.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.load_floorload_floor(self) -> netdot.dataclasses.site.FloorLoad the floor (Floor) associated to this Room.

Returns:
    netdot.Floor: The full Floor object if available, else None.Room.load_horizontalcablesload_horizontalcables(self, ignore_404=True) -> List[netdot.dataclasses.cables.HorizontalCable]Load the HorizontalCables associated to this Room.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.HorizontalCable]: All/Any HorizontalCables related to this Room.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.load_personsload_persons(self, ignore_404=True) -> List[netdot.dataclasses.users.Person]Load the Persons associated to this Room.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Person]: All/Any Persons related to this Room.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Room.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Room.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ClosetAttributesAttributeTypeDefaultaccess_key_typestrasbestos_tilesboolFalsecatv_tapsstrconverted_patch_panelsboolFalsedimensionsstrground_bussboolFalsehvac_typestrinfostrnamestrroom_xlinkintot_blocksstroutletsstrpair_countstrpatch_panelsstrrack_typestrracksstrru_availstrshared_withstrss_blocksstrwork_neededstrMethodsCloset.add_backbonecable_as_end_closetadd_backbonecable_as_end_closet(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCableAdd a BackboneCable to this Closet.

Returns:
    netdot.BackboneCable: The created BackboneCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Closet.add_backbonecable_as_start_closetadd_backbonecable_as_start_closet(self, data: netdot.dataclasses.cables.BackboneCable) -> netdot.dataclasses.cables.BackboneCableAdd a BackboneCable to this Closet.

Returns:
    netdot.BackboneCable: The created BackboneCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Closet.add_horizontalcableadd_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCableAdd a HorizontalCable to this Closet.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Closet.createcreate(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`.Closet.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Closet.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Closet.load_end_closet_backbonecablesload_end_closet_backbonecables(self, ignore_404=True) -> List[netdot.dataclasses.cables.BackboneCable]Load the BackboneCables associated to this Closet. (Via the `BackboneCable.end_closet` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BackboneCable]: All/Any BackboneCables related to this Closet.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Closet.load_horizontalcablesload_horizontalcables(self, ignore_404=True) -> List[netdot.dataclasses.cables.HorizontalCable]Load the HorizontalCables associated to this Closet.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.HorizontalCable]: All/Any HorizontalCables related to this Closet.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Closet.load_roomload_room(self) -> netdot.dataclasses.site.RoomLoad the room (Room) associated to this Closet.

Returns:
    netdot.Room: The full Room object if available, else None.Closet.load_start_closet_backbonecablesload_start_closet_backbonecables(self, ignore_404=True) -> List[netdot.dataclasses.cables.BackboneCable]Load the BackboneCables associated to this Closet. (Via the `BackboneCable.start_closet` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BackboneCable]: All/Any BackboneCables related to this Closet.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Closet.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Closet.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.SiteLinkAttributesAttributeTypeDefaultentity_xlinkintfarend_xlinkintinfostrnamestrnearend_xlinkintMethodsSiteLink.add_circuitadd_circuit(self, data: netdot.dataclasses.cables.Circuit) -> netdot.dataclasses.cables.CircuitAdd a Circuit to this SiteLink.

Returns:
    netdot.Circuit: The created Circuit.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)SiteLink.createcreate(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`.SiteLink.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),SiteLink.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)SiteLink.load_circuitsload_circuits(self, ignore_404=True) -> List[netdot.dataclasses.cables.Circuit]Load the Circuits associated to this SiteLink. (Via the `Circuit.linkid` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Circuit]: All/Any Circuits related to this SiteLink.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)SiteLink.load_entityload_entity(self) -> netdot.dataclasses.entity.EntityLoad the entity (Entity) associated to this SiteLink.

Returns:
    netdot.Entity: The full Entity object if available, else None.SiteLink.load_farendload_farend(self) -> netdot.dataclasses.site.SiteLoad the farend (Site) associated to this SiteLink.

Returns:
    netdot.Site: The full Site object if available, else None.SiteLink.load_nearendload_nearend(self) -> netdot.dataclasses.site.SiteLoad the nearend (Site) associated to this SiteLink.

Returns:
    netdot.Site: The full Site object if available, else None.SiteLink.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.SiteLink.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ContactListAttributesAttributeTypeDefaultinfostrnamestrMethodsContactList.add_accessrightadd_accessright(self, data: netdot.dataclasses.users.AccessRight) -> netdot.dataclasses.users.AccessRightAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_bgppeeringadd_bgppeering(self, data: netdot.dataclasses.bgp.BGPPeering) -> netdot.dataclasses.bgp.BGPPeeringAdd a BGPPeering to this ContactList.

Returns:
    netdot.BGPPeering: The created BGPPeering.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_contactadd_contact(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.ContactAdd a Contact to this ContactList.

Returns:
    netdot.Contact: The created Contact.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_deviceadd_device(self, data: netdot.dataclasses.device.Device) -> netdot.dataclasses.device.DeviceAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_devicecontactsadd_devicecontacts(self, data: netdot.dataclasses.device.DeviceContacts) -> netdot.dataclasses.device.DeviceContactsAdd a DeviceContacts to this ContactList.

Returns:
    netdot.DeviceContacts: The created DeviceContacts.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_entityadd_entity(self, data: netdot.dataclasses.entity.Entity) -> netdot.dataclasses.entity.EntityAdd a Entity to this ContactList.

Returns:
    netdot.Entity: The created Entity.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_grouprightadd_groupright(self, data: netdot.dataclasses.users.GroupRight) -> netdot.dataclasses.users.GroupRightAdd a GroupRight to this ContactList.

Returns:
    netdot.GroupRight: The created GroupRight.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_horizontalcableadd_horizontalcable(self, data: netdot.dataclasses.cables.HorizontalCable) -> netdot.dataclasses.cables.HorizontalCableAdd a HorizontalCable to this ContactList.

Returns:
    netdot.HorizontalCable: The created HorizontalCable.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_interfaceadd_interface(self, data: netdot.dataclasses.interface.Interface) -> netdot.dataclasses.interface.InterfaceAdd a Interface to this ContactList.

Returns:
    netdot.Interface: The created Interface.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_ipserviceadd_ipservice(self, data: netdot.dataclasses.ipblock.IPService) -> netdot.dataclasses.ipblock.IPServiceAdd a IPService to this ContactList.

Returns:
    netdot.IPService: The created IPService.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_siteadd_site(self, data: netdot.dataclasses.site.Site) -> netdot.dataclasses.site.SiteAdd a Site to this ContactList.

Returns:
    netdot.Site: The created Site.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.add_zoneadd_zone(self, data: netdot.dataclasses.dns.Zone) -> netdot.dataclasses.dns.ZoneAdd a Zone to this ContactList.

Returns:
    netdot.Zone: The created Zone.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.createcreate(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`.ContactList.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),ContactList.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)ContactList.load_accessrightsload_accessrights(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.AccessRight]: Any/All AccessRights related to this ContactList, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_bgppeeringsload_bgppeerings(self, ignore_404=True) -> List[netdot.dataclasses.bgp.BGPPeering]Load the BGPPeerings associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.BGPPeering]: All/Any BGPPeerings related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_contactsload_contacts(self, ignore_404=True) -> List[netdot.dataclasses.users.Contact]Load the Contacts associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Contact]: All/Any Contacts related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_devicecontactsload_devicecontacts(self, ignore_404=True) -> List[netdot.dataclasses.device.DeviceContacts]Load the DeviceContacts associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.DeviceContacts]: All/Any DeviceContacts related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_devicesload_devices(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Device]: Any/All Devices related to this ContactList, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_entitiesload_entities(self, ignore_404=True) -> List[netdot.dataclasses.entity.Entity]Load the Entities associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Entity]: All/Any Entities related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_grouprightsload_grouprights(self, ignore_404=True) -> List[netdot.dataclasses.users.GroupRight]Load the GroupRights associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.GroupRight]: All/Any GroupRights related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_horizontalcablesload_horizontalcables(self, ignore_404=True) -> List[netdot.dataclasses.cables.HorizontalCable]Load the HorizontalCables associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.HorizontalCable]: All/Any HorizontalCables related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_interfacesload_interfaces(self, ignore_404=True) -> List[netdot.dataclasses.interface.Interface]Load the Interfaces associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Interface]: All/Any Interfaces related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_ipservicesload_ipservices(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPService]Load the IPServices associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPService]: All/Any IPServices related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_sitesload_sites(self, ignore_404=True) -> List[netdot.dataclasses.site.Site]Load the Sites associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Site]: All/Any Sites related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.load_zonesload_zones(self, ignore_404=True) -> List[netdot.dataclasses.dns.Zone]Load the Zones associated to this ContactList.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Zone]: All/Any Zones related to this ContactList.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactList.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.ContactList.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ContactTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsContactType.add_contactadd_contact(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.ContactAdd a Contact to this ContactType.

Returns:
    netdot.Contact: The created Contact.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactType.createcreate(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`.ContactType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),ContactType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)ContactType.load_contactsload_contacts(self, ignore_404=True) -> List[netdot.dataclasses.users.Contact]Load the Contacts associated to this ContactType.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Contact]: All/Any Contacts related to this ContactType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)ContactType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.ContactType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.AccessRightAttributesAttributeTypeDefaultaccessstrobject_classstrobject_idintMethodsAccessRight.add_contactlistadd_contactlist(self, data: netdot.dataclasses.users.ContactList) -> netdot.dataclasses.users.ContactListAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.add_grouprightadd_groupright(self, data: netdot.dataclasses.users.GroupRight) -> netdot.dataclasses.users.GroupRightAdd a GroupRight to this AccessRight.

Returns:
    netdot.GroupRight: The created GroupRight.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.add_personadd_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.PersonAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.add_userrightadd_userright(self, data: netdot.dataclasses.users.UserRight) -> netdot.dataclasses.users.UserRightAdd a UserRight to this AccessRight.

Returns:
    netdot.UserRight: The created UserRight.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.createcreate(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`.AccessRight.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),AccessRight.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)AccessRight.load_contactlistsload_contactlists(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.ContactList]: Any/All ContactLists related to this AccessRight, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.load_grouprightsload_grouprights(self, ignore_404=True) -> List[netdot.dataclasses.users.GroupRight]Load the GroupRights associated to this AccessRight.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.GroupRight]: All/Any GroupRights related to this AccessRight.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.load_personsload_persons(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Person]: Any/All Persons related to this AccessRight, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.load_userrightsload_userrights(self, ignore_404=True) -> List[netdot.dataclasses.users.UserRight]Load the UserRights associated to this AccessRight.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.UserRight]: All/Any UserRights related to this AccessRight.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)AccessRight.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.AccessRight.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.GroupRightAttributesAttributeTypeDefaultaccessright_xlinkintcontactlist_xlinkintMethodsGroupRight.createcreate(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`.GroupRight.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),GroupRight.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)GroupRight.load_accessrightload_accessright(self) -> netdot.dataclasses.users.AccessRightLoad the accessright (AccessRight) associated to this GroupRight.

Returns:
    netdot.AccessRight: The full AccessRight object if available, else None.GroupRight.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this GroupRight.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.GroupRight.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.GroupRight.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.AuditAttributesAttributeTypeDefaultfieldsstrlabelstrobject_idintoperationstrtablenamestrtstampDateTimeusernamestrvalsstrMethodsAudit.createcreate(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`.Audit.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Audit.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Audit.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Audit.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.UserTypeAttributesAttributeTypeDefaultinfostrnamestrMethodsUserType.add_personadd_person(self, data: netdot.dataclasses.users.Person) -> netdot.dataclasses.users.PersonAdd a Person to this UserType.

Returns:
    netdot.Person: The created Person.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)UserType.createcreate(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`.UserType.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),UserType.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)UserType.load_personsload_persons(self, ignore_404=True) -> List[netdot.dataclasses.users.Person]Load the Persons associated to this UserType. (Via the `Person.user_type` attribute)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Person]: All/Any Persons related to this UserType.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)UserType.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.UserType.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.PersonAttributesAttributeTypeDefaultaliasesstrcellstremailstremailpagerstrentity_xlinkintextensionintfaxstrfirstnamestrhomestrinfostrlastnamestrlocation_xlinkintofficestrpagerstrpositionstrroom_xlinkintuser_type_xlinkintusernamestrpasswordstrMethodsPerson.add_accessrightadd_accessright(self, data: netdot.dataclasses.users.AccessRight) -> netdot.dataclasses.users.AccessRightAdd 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.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Person.add_contactadd_contact(self, data: netdot.dataclasses.users.Contact) -> netdot.dataclasses.users.ContactAdd a Contact to this Person.

Returns:
    netdot.Contact: The created Contact.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Person.add_userrightadd_userright(self, data: netdot.dataclasses.users.UserRight) -> netdot.dataclasses.users.UserRightAdd a UserRight to this Person.

Returns:
    netdot.UserRight: The created UserRight.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Person.createcreate(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`.Person.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Person.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Person.load_accessrightsload_accessrights(self, ignore_404=True) -> 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)

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.AccessRight]: Any/All AccessRights related to this Person, or an empty list if none are found.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Person.load_contactsload_contacts(self, ignore_404=True) -> List[netdot.dataclasses.users.Contact]Load the Contacts associated to this Person.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.Contact]: All/Any Contacts related to this Person.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Person.load_entityload_entity(self) -> netdot.dataclasses.entity.EntityLoad the entity (Entity) associated to this Person.

Returns:
    netdot.Entity: The full Entity object if available, else None.Person.load_locationload_location(self) -> netdot.dataclasses.site.SiteLoad the location (Site) associated to this Person.

Returns:
    netdot.Site: The full Site object if available, else None.Person.load_roomload_room(self) -> netdot.dataclasses.site.RoomLoad the room (Room) associated to this Person.

Returns:
    netdot.Room: The full Room object if available, else None.Person.load_user_typeload_user_type(self) -> netdot.dataclasses.users.UserTypeLoad the user_type (UserType) associated to this Person.

Returns:
    netdot.UserType: The full UserType object if available, else None.Person.load_userrightsload_userrights(self, ignore_404=True) -> List[netdot.dataclasses.users.UserRight]Load the UserRights associated to this Person.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.UserRight]: All/Any UserRights related to this Person.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)Person.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Person.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.ContactAttributesAttributeTypeDefaultcontactlist_xlinkintcontacttype_xlinkintescalation_levelintinfostrnotify_email_xlinkintnotify_pager_xlinkintnotify_voice_xlinkintperson_xlinkintMethodsContact.createcreate(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`.Contact.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),Contact.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)Contact.load_contactlistload_contactlist(self) -> netdot.dataclasses.users.ContactListLoad the contactlist (ContactList) associated to this Contact.

Returns:
    netdot.ContactList: The full ContactList object if available, else None.Contact.load_contacttypeload_contacttype(self) -> netdot.dataclasses.users.ContactTypeLoad the contacttype (ContactType) associated to this Contact.

Returns:
    netdot.ContactType: The full ContactType object if available, else None.Contact.load_notify_emailload_notify_email(self) -> netdot.dataclasses.misc.AvailabilityLoad the notify_email (Availability) associated to this Contact.

Returns:
    netdot.Availability: The full Availability object if available, else None.Contact.load_notify_pagerload_notify_pager(self) -> netdot.dataclasses.misc.AvailabilityLoad the notify_pager (Availability) associated to this Contact.

Returns:
    netdot.Availability: The full Availability object if available, else None.Contact.load_notify_voiceload_notify_voice(self) -> netdot.dataclasses.misc.AvailabilityLoad the notify_voice (Availability) associated to this Contact.

Returns:
    netdot.Availability: The full Availability object if available, else None.Contact.load_personload_person(self) -> netdot.dataclasses.users.PersonLoad the person (Person) associated to this Contact.

Returns:
    netdot.Person: The full Person object if available, else None.Contact.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.Contact.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.UserRightAttributesAttributeTypeDefaultaccessright_xlinkintperson_xlinkintMethodsUserRight.createcreate(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`.UserRight.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),UserRight.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)UserRight.load_accessrightload_accessright(self) -> netdot.dataclasses.users.AccessRightLoad the accessright (AccessRight) associated to this UserRight.

Returns:
    netdot.AccessRight: The full AccessRight object if available, else None.UserRight.load_personload_person(self) -> netdot.dataclasses.users.PersonLoad the person (Person) associated to this UserRight.

Returns:
    netdot.Person: The full Person object if available, else None.UserRight.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.UserRight.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.VLANAttributesAttributeTypeDefaultdescriptionstrinfostrnamestrvidintvlangroup_xlinkintMethodsVLAN.add_interfacevlanadd_interfacevlan(self, data: netdot.dataclasses.interface.InterfaceVLAN) -> netdot.dataclasses.interface.InterfaceVLANAdd a InterfaceVLAN to this VLAN.

Returns:
    netdot.InterfaceVLAN: The created InterfaceVLAN.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)VLAN.add_ipblockadd_ipblock(self, data: netdot.dataclasses.ipblock.IPBlock) -> netdot.dataclasses.ipblock.IPBlockAdd a IPBlock to this VLAN.

Returns:
    netdot.IPBlock: The created IPBlock.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)VLAN.createcreate(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`.VLAN.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),VLAN.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)VLAN.load_interfacevlansload_interfacevlans(self, ignore_404=True) -> List[netdot.dataclasses.interface.InterfaceVLAN]Load the InterfaceVLANs associated to this VLAN.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.InterfaceVLAN]: All/Any InterfaceVLANs related to this VLAN.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)VLAN.load_ipblocksload_ipblocks(self, ignore_404=True) -> List[netdot.dataclasses.ipblock.IPBlock]Load the IPBlocks associated to this VLAN.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.IPBlock]: All/Any IPBlocks related to this VLAN.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)VLAN.load_vlangroupload_vlangroup(self) -> netdot.dataclasses.vlan.VLANGroupLoad the vlangroup (VLANGroup) associated to this VLAN.

Returns:
    netdot.VLANGroup: The full VLANGroup object if available, else None.VLAN.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.VLAN.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.classnetdot.VLANGroupAttributesAttributeTypeDefaultdescriptionstrend_vidintinfostrnamestrstart_vidintMethodsVLANGroup.add_vlanadd_vlan(self, data: netdot.dataclasses.vlan.VLAN) -> netdot.dataclasses.vlan.VLANAdd a VLAN to this VLANGroup.

Returns:
    netdot.VLAN: The created VLAN.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)VLANGroup.createcreate(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`.VLANGroup.create_or_updatecreate_or_update(self: 'NetdotAPIDataclass')Create or update this object in Netdot.

> NOTE: Upon creation, this object's `id` will be populated.

Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: if the object cannot be created for any reason. (error details can be found in Netdot's apache server logs)
    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),VLANGroup.deletedelete(self, **kwargs)Delete this object.

Args:
    See :func:`netdot.Repository.delete`

Requires:
    Must have repository attached. Use with_repository(...)VLANGroup.load_vlansload_vlans(self, ignore_404=True) -> List[netdot.dataclasses.vlan.VLAN]Load the VLANs associated to this VLANGroup.

Args:
    ignore_404 (bool, optional): If True, will continue upon encountering HTTP 404 errors. Defaults to True.

Returns:
    List[netdot.VLAN]: All/Any VLANs related to this VLANGroup.
    
Raises:
    ProtocolError: Can occur if your connection with Netdot has any issues.
    HTTPError: For any HTTP errors. (error details can be found in Netdot's apache server logs)VLANGroup.replacereplace(self, **kwargs)Return a new object replacing specified fields with new values.

Returns:
    NetdotAPIDataclass: A copy of this object with the specified fields replaced with new values.VLANGroup.updateupdate(self)Update this object in Netdot.

Raises:
    ValueError: If trying to update an object that has no `id`.Netdot Python API Environment VariablesGenerated usingnetdot.config.help()Version 0.4.3 documentation generated on Feb 24, 2024 at 09:02AM--terse TERSE         Print terse output (that generally tries to fit the
                        screen width). [env var: NETDOT_CLI_TERSE] (default:
                        False)
  --server-url SERVER_URL
                        The URL of the Netdot server. [env var:
                        NETDOT_CLI_SERVER_URL] (default:
                        https://nsdb.uoregon.edu)
  --truncate-min TRUNCATE_MIN_CHARS
                        The absolute minimum number of characters to print
                        before truncating. [env var:
                        NETDOT_CLI_TRUNCATE_MIN_CHARS] (default: 20)
  --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] (default: 16)
  --terse-max-chars TERSE_MAX_CHARS
                        The maximum number of characters to print before
                        truncating. [env var: NETDOT_CLI_TERSE_MAX_CHARS]
                        (default: None)
  --display-full-objects DISPLAY_FULL_OBJECTS
                        Display the full objects instead of just the object
                        IDs. [env var: NETDOT_CLI_DISPLAY_FULL_OBJECTS]
                        (default: False)
  --skip-ssl SKIP_SSL   Skip SSL verification when making API requests.
                        **Never recommended in production.** Note: you must
                        reconnecting to Netdot for config to take effect.
                        (Used as a default arg for an __init__ method) [env
                        var: NETDOT_CLI_SKIP_SSL] (default: False)
  --connect-timeout CONNECT_TIMEOUT
                        The number of seconds to wait for connection to
                        establish with the Netdot server. Note: you must
                        reconnecting to Netdot for config to take effect.
                        (Used as a default arg for an __init__ method) [env
                        var: NETDOT_CLI_CONNECT_TIMEOUT] (default: 3)
  --timeout TIMEOUT     The number of seconds to wait for a response from the
                        API server. Note: you must reconnecting to Netdot for
                        config to take effect. (Used as a default arg for an
                        __init__ method) 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]
                        (default: 20)
  --raise-parse-errors RAISE_FIELD_PARSE_ERRORS
                        Raise an exception if there is an error parsing any
                        server response (from Netdot). Else, log a warning and
                        continue, using the 'raw string' data. (These are
                        generally warnings that should be fixed by a netdot
                        python package developer) [env var:
                        NETDOT_CLI_RAISE_FIELD_PARSE_ERRORS] (default: False)
  --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]
                        (default: True)
  --threads THREADS     The number of threads to use when making
                        parallelizable API GET requests. Note: you must
                        reconnecting to Netdot for config to take effect.
                        (Used as a default arg for an __init__ method) [env
                        var: NETDOT_CLI_THREADS] (default: 1)
  --trace-downloads TRACE_DOWNLOADS
                        Intermittently log an "INFO" message saying how many
                        bytes have been downloaded from Netdot. Useful for
                        long-running download tasks. (Note: This *is* thread-
                        safe.) Note: you must reconnecting to Netdot for
                        config to take effect. (Used as a default arg for an
                        internal __init__ method) [env var:
                        NETDOT_CLI_TRACE_DOWNLOADS] (default: False)
  --trace-threshold TRACE_THRESHOLD
                        See TRACE_DOWNLOADS above. This threshold determines
                        how often messages should be logged -- the number of
                        bytes downloaded from Netdot before a log message is
                        printed. Note: you must reconnecting to Netdot for
                        config to take effect. (Used as a default arg for an
                        internal __init__ method) [env var:
                        NETDOT_CLI_TRACE_THRESHOLD] (default: 1000000)
  --save-as-file-on-error SAVE_AS_FILE_ON_ERROR
                        (Try to) Save the proposed changes to a file when an
                        error occurs. [env var:
                        NETDOT_CLI_SAVE_AS_FILE_ON_ERROR] (default: True)
  --error-pickle-filename ERROR_PICKLE_FILENAME
                        The filename to use when saving proposed changes to a
                        file when an error occurs. (timestamp based on when
                        the script is run) [env var:
                        NETDOT_CLI_ERROR_PICKLE_FILENAME] (default: netdot-
                        cli-0.4.3-proposed_changes-2024-02-24_09-02.pickle)

 In general, command-line values override environment variables which override
defaults.


⚠ NOTICE: These defaults are read from Environment Variables when 
`netdot.config` module is imported (via `netdot.config.parse_env_vars`). 
Look for "[env var: NETDOT_CLI_...]" above to discover the available 
Environment Variables.

Example: `export NETDOT_CLI_TERSE=True`

Import Env Vars anytime by calling: `netdot.config.parse_env_vars()`

Alternately, override these defaults by setting 
`netdot.config.<ENV_VAR_NAME>` directly in your Python code.

Example: `netdot.config.TERSE=True`