diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 2cee27e..b7db4eb 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @jajeffries @leoparente @ltucker @mfiedorowicz @MicahParks @marc-barry +* @jajeffries @leoparente @ltucker @mfiedorowicz @MicahParks @marc-barry @davidlanouette diff --git a/.github/workflows/security.yaml b/.github/workflows/security.yaml new file mode 100644 index 0000000..56b513d --- /dev/null +++ b/.github/workflows/security.yaml @@ -0,0 +1,109 @@ +name: Security scan + +on: + push: + branches: + - "!release" + pull_request: + schedule: + - cron: '0 6 * * *' # Daily at 06:00 UTC, to catch newly published advisories + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: false + +permissions: + contents: read + security-events: write + +jobs: + trivy: + name: Trivy dependency scan + runs-on: ubuntu-latest + timeout-minutes: 15 + env: + TRIVY_DISABLE_VEX_NOTICE: "true" + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + # pyproject.toml declares open ">=" ranges, which Trivy cannot evaluate + # on their own. Resolve them to concrete installed versions and write a + # pinned requirements.txt (not committed) so the scan reflects what a + # consumer actually gets today. This is the library equivalent of the + # container scan orb-agent runs against its built image. + - name: Resolve installed dependency versions + run: | + python -m pip install --upgrade pip + pip install . + pip freeze --exclude-editable | grep -viE '^netboxlabs[._-]diode' > requirements.txt + echo "Resolved dependencies:"; cat requirements.txt + + # exit-code 0 keeps this non-blocking: findings surface as GitHub + # code-scanning alerts rather than failing the build. + - name: Scan resolved dependencies and tree + uses: aquasecurity/trivy-action@a9c7b0f06e461e9d4b4d1711f154ee024b8d7ab8 # v0.36.0 + with: + scan-type: fs + scan-ref: . + format: json + output: trivy-output.json + scanners: vuln,secret + severity: CRITICAL,HIGH,MEDIUM,LOW + ignore-unfixed: true + exit-code: "0" + + - name: Build scan summary + if: "!cancelled()" + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 + with: + script: | + const fs = require('fs'); + const data = JSON.parse(fs.readFileSync('trivy-output.json', 'utf8')); + const vulns = (data.Results || []).flatMap(r => + (r.Vulnerabilities || []).map(v => ({ ...v, target: r.Target })) + ); + const secrets = (data.Results || []).flatMap(r => + (r.Secrets || []).map(s => ({ ...s, target: r.Target })) + ); + + const SEVERITY_LABEL = { + CRITICAL: '🔴 **CRITICAL**', + HIGH: '🟠 **HIGH**', + MEDIUM: '🟡 MEDIUM', + LOW: '⚪ LOW' + }; + + let summary = `### Trivy dependency scan\n\n`; + if (vulns.length === 0) { + summary += '_No known-vulnerable dependencies found._\n'; + } else { + summary += `| Package | Vulnerability | Severity | Installed | Fixed | Title |\n`; + summary += `|---|---|---|---|---|---|\n`; + for (const v of vulns) { + const title = (v.Title || '').replace(/\|/g, '\\|').substring(0, 80); + const id = v.PrimaryURL ? `[${v.VulnerabilityID}](${v.PrimaryURL})` : v.VulnerabilityID; + summary += `| ${v.PkgName} | ${id} | ${SEVERITY_LABEL[v.Severity] || v.Severity} | ${v.InstalledVersion} | ${v.FixedVersion || 'N/A'} | ${title} |\n`; + } + } + if (secrets.length > 0) { + summary += `\n**Potential secrets:** ${secrets.length} (see the Security tab for details).\n`; + } + + fs.appendFileSync(process.env.GITHUB_STEP_SUMMARY, summary); + + - name: Convert scan results to SARIF + if: "!cancelled()" + run: trivy convert --format sarif --output trivy-results.sarif trivy-output.json + + - name: Upload SARIF to GitHub Code Scanning + if: "!cancelled()" + uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6 + with: + sarif_file: trivy-results.sarif diff --git a/README.md b/README.md index a82f135..aec5a3f 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,7 @@ pip install netboxlabs-diode-sdk * `DIODE_SENTRY_DSN` - Optional Sentry DSN for error reporting * `DIODE_CLIENT_ID` - Client ID for OAuth2 authentication * `DIODE_CLIENT_SECRET` - Client Secret for OAuth2 authentication +* `DIODE_MAX_AUTH_RETRIES` - Maximum attempts for OAuth2 token fetch and gRPC re-authentication on `Unauthenticated` (default: `3`). Token fetch retries with exponential backoff on `429`, `500`, `502`, and `503`, honouring `Retry-After` when present on `429`/`503`. * `DIODE_CERT_FILE` - Path to custom certificate file for TLS connections * `DIODE_SKIP_TLS_VERIFY` - Skip TLS verification (default: `false`) * `DIODE_DRY_RUN_OUTPUT_DIR` - Directory where `DiodeDryRunClient` will write JSON files @@ -82,6 +83,8 @@ if __name__ == "__main__": ``` +See [`docs/examples/`](./docs/examples) for per-entity examples (one file per supported NetBox object type). + ### Using Metadata Entities support attaching custom metadata as key-value pairs. Metadata can be used to store additional context, tracking information, or custom attributes that don't fit into the standard NetBox fields. @@ -501,6 +504,10 @@ These attributes are added alongside standard OTLP resource attributes (`service * ASN * ASN Range * Aggregate +* Cable +* Cable Bundle +* Cable Path +* Cable Termination * Circuit * Circuit Group * Circuit Group Assignment @@ -515,8 +522,12 @@ These attributes are added alongside standard OTLP resource attributes (`service * Contact Assignment * Contact Group * Contact Role +* Custom Field +* Custom Field Choice Set +* Custom Link * Device * Device Bay +* Device Config * Device Role * Device Type * FHRP Group @@ -532,6 +543,7 @@ These attributes are added alongside standard OTLP resource attributes (`service * Interface * Inventory Item * Inventory Item Role +* Journal Entry * L2VPN * L2VPN Termination * Location @@ -540,6 +552,9 @@ These attributes are added alongside standard OTLP resource attributes (`service * Module * Module Bay * Module Type +* Module Type Profile +* Owner +* Owner Group * Platform * Power Feed * Power Outlet @@ -551,12 +566,15 @@ These attributes are added alongside standard OTLP resource attributes (`service * Provider Network * RIR * Rack +* Rack Group +* Rack Reservation * Rack Role * Rack Type * Rear Port * Region * Role * Route Target +* Script Module * Service * Site * Site Group @@ -579,6 +597,7 @@ These attributes are added alongside standard OTLP resource attributes (`service * Virtual Device Context * Virtual Disk * Virtual Machine +* Virtual Machine Type * Wireless Lan * Wireless Lan Group * Wireless Link diff --git a/docs/README.md b/docs/README.md index 4ee1d80..f06a55b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Diode Python SDK - Entity Examples Source: NetBox v4.6.0 -Generated: 2026-05-14 20:30:15Z +Generated: 2026-07-03 00:59:24Z ## Prerequisites diff --git a/docs/entities.md b/docs/entities.md deleted file mode 100644 index 5e8e655..0000000 --- a/docs/entities.md +++ /dev/null @@ -1,3 +0,0 @@ -# Diode Supported Entities - -See updated docs in [README](README.md) diff --git a/docs/examples/cable.py b/docs/examples/cable.py index 4ae63a2..1cc8d64 100644 --- a/docs/examples/cable.py +++ b/docs/examples/cable.py @@ -11,9 +11,16 @@ from netboxlabs.diode.sdk.ingester import ( Cable, CableBundle, + Device, + DeviceRole, + DeviceType, Entity, + GenericObject, + Interface, + Manufacturer, Owner, OwnerGroup, + Site, Tag, Tenant, ) @@ -50,6 +57,76 @@ def cable_minimal() -> Cable: """Create a Cable with only required fields using flat strings.""" return Cable( metadata={"source": "example"}, + a_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name A", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], + b_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name B", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], ) @@ -57,7 +134,7 @@ def cable_extended() -> Cable: """Create a Cable with common optional fields.""" return Cable( metadata={"source": "example", "custom_key": "custom_value"}, - status="connected", + status="planned", description="Example description", color="0000ff", type="aoc", @@ -67,6 +144,76 @@ def cable_extended() -> Cable: length_unit="cm", comments="Example comments", profile="breakout-1c2p-2c1p", + a_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name A", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], + b_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name B", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], ) @@ -78,7 +225,7 @@ def cable_explicit() -> Cable: "custom_key": "custom_value", "collected_at": "2024-01-15T10:30:00Z", }, - status="connected", + status="planned", description="Example description", color="0000ff", comments="Example comments", @@ -96,6 +243,76 @@ def cable_explicit() -> Cable: metadata={"source": "example"}, ), bundle=CableBundle(name="Example Name", metadata={"source": "example"}), + a_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name A", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], + b_terminations=[ + GenericObject( + object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name B", + type="1000base-t", + metadata={"source": "example"}, + ) + ) + ], tags=[Tag(name="production")], ) diff --git a/docs/examples/cable_termination.py b/docs/examples/cable_termination.py index d0b44a0..63dfcb1 100644 --- a/docs/examples/cable_termination.py +++ b/docs/examples/cable_termination.py @@ -11,7 +11,25 @@ from netboxlabs.diode.sdk.ingester import ( Cable, CableTermination, + Circuit, + CircuitTermination, + CircuitType, + ConsolePort, + ConsoleServerPort, + Device, + DeviceRole, + DeviceType, Entity, + FrontPort, + Interface, + Manufacturer, + PowerFeed, + PowerOutlet, + PowerPanel, + PowerPort, + Provider, + RearPort, + Site, ) TARGET = "grpc://localhost:8080/diode" @@ -63,13 +81,53 @@ def cable_termination_extended() -> CableTermination: def cable_termination_explicit() -> CableTermination: """Create a CableTermination with fully nested objects and all common fields.""" return CableTermination( - cable=Cable(status="active", color="0000ff", metadata={"source": "example"}), + cable=Cable(status="planned", color="0000ff", metadata={"source": "example"}), cable_end="A", metadata={ "source": "example", "custom_key": "custom_value", "collected_at": "2024-01-15T10:30:00Z", }, + # Polymorphic 'termination' — choose ONE of these mutually exclusive variants: + termination_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name", + type="1000base-t", + metadata={"source": "example"}, + ), + # termination_circuit_termination=CircuitTermination(circuit=Circuit(cid="CID-001", provider=Provider(name="Example Name", slug="example-slug", metadata={"source": "example"}), type=CircuitType(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), status="active", metadata={"source": "example"}), term_side="A", metadata={"source": "example"}), + # termination_console_port=ConsolePort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # termination_console_server_port=ConsoleServerPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # termination_front_port=FrontPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", rear_port=RearPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", metadata={"source": "example"}), metadata={"source": "example"}), + # termination_power_feed=PowerFeed(power_panel=PowerPanel(site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), name="Example Name", status="active", metadata={"source": "example"}), + # termination_power_outlet=PowerOutlet(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", color="0000ff", status="disabled", metadata={"source": "example"}), + # termination_power_port=PowerPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # termination_rear_port=RearPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", metadata={"source": "example"}), ) diff --git a/docs/examples/circuit_group_assignment.py b/docs/examples/circuit_group_assignment.py index 3272774..40b7cef 100644 --- a/docs/examples/circuit_group_assignment.py +++ b/docs/examples/circuit_group_assignment.py @@ -9,10 +9,16 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( + Circuit, CircuitGroup, CircuitGroupAssignment, + CircuitType, Entity, + Provider, + ProviderNetwork, Tag, + VirtualCircuit, + VirtualCircuitType, ) TARGET = "grpc://localhost:8080/diode" @@ -74,6 +80,22 @@ def circuit_group_assignment_explicit() -> CircuitGroupAssignment: "collected_at": "2024-01-15T10:30:00Z", }, priority="inactive", + # Polymorphic 'member' — choose ONE of these mutually exclusive variants: + member_circuit=Circuit( + cid="CID-001", + provider=Provider( + name="Example Name", slug="example-slug", metadata={"source": "example"} + ), + type=CircuitType( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + # member_virtual_circuit=VirtualCircuit(cid="CID-001", provider_network=ProviderNetwork(provider=Provider(name="Example Name", slug="example-slug", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), type=VirtualCircuitType(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), status="active", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/circuit_termination.py b/docs/examples/circuit_termination.py index 7d655d6..0f719d9 100644 --- a/docs/examples/circuit_termination.py +++ b/docs/examples/circuit_termination.py @@ -13,7 +13,12 @@ CircuitTermination, CircuitType, Entity, + Location, Provider, + ProviderNetwork, + Region, + Site, + SiteGroup, Tag, ) @@ -100,6 +105,17 @@ def circuit_termination_explicit() -> CircuitTermination: xconnect_id="Example Xconnect Id", pp_info="Example Pp Info", mark_connected=True, + # Polymorphic 'termination' — choose ONE of these mutually exclusive variants: + termination_site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + # termination_location=Location(name="Example Name", slug="example-slug", site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # termination_provider_network=ProviderNetwork(provider=Provider(name="Example Name", slug="example-slug", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # termination_region=Region(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # termination_site_group=SiteGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/cluster.py b/docs/examples/cluster.py index 777c294..3e9d819 100644 --- a/docs/examples/cluster.py +++ b/docs/examples/cluster.py @@ -13,8 +13,12 @@ ClusterGroup, ClusterType, Entity, + Location, Owner, OwnerGroup, + Region, + Site, + SiteGroup, Tag, Tenant, ) @@ -95,6 +99,16 @@ def cluster_explicit() -> Cluster: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'scope' — choose ONE of these mutually exclusive variants: + scope_site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + # scope_location=Location(name="Example Name", slug="example-slug", site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # scope_region=Region(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # scope_site_group=SiteGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/console_port.py b/docs/examples/console_port.py index a0d0b68..0901cf9 100644 --- a/docs/examples/console_port.py +++ b/docs/examples/console_port.py @@ -70,7 +70,7 @@ def console_port_extended() -> ConsolePort: description="Example description", label="Example Label", type="db-25", - speed=1, + speed=1200, mark_connected=True, ) @@ -113,7 +113,7 @@ def console_port_explicit() -> ConsolePort: description="Example description", label="Example Label", type="db-25", - speed=1, + speed=1200, mark_connected=True, module=Module( device=Device( diff --git a/docs/examples/console_server_port.py b/docs/examples/console_server_port.py index dda1700..053d8a4 100644 --- a/docs/examples/console_server_port.py +++ b/docs/examples/console_server_port.py @@ -72,7 +72,7 @@ def console_server_port_extended() -> ConsoleServerPort: description="Example description", label="Example Label", type="db-25", - speed=1, + speed=1200, mark_connected=True, ) @@ -115,7 +115,7 @@ def console_server_port_explicit() -> ConsoleServerPort: description="Example description", label="Example Label", type="db-25", - speed=1, + speed=1200, mark_connected=True, module=Module( device=Device( diff --git a/docs/examples/fhrp_group_assignment.py b/docs/examples/fhrp_group_assignment.py index 4c60662..05b8276 100644 --- a/docs/examples/fhrp_group_assignment.py +++ b/docs/examples/fhrp_group_assignment.py @@ -65,9 +65,7 @@ def fhrp_group_assignment_extended() -> FHRPGroupAssignment: def fhrp_group_assignment_explicit() -> FHRPGroupAssignment: """Create a FHRPGroupAssignment with fully nested objects and all common fields.""" return FHRPGroupAssignment( - group=FHRPGroup( - protocol="Example Protocol", group_id=1, metadata={"source": "example"} - ), + group=FHRPGroup(protocol="carp", group_id=1, metadata={"source": "example"}), priority=1, metadata={ "source": "example", diff --git a/docs/examples/front_port.py b/docs/examples/front_port.py index 37fe25d..675482f 100644 --- a/docs/examples/front_port.py +++ b/docs/examples/front_port.py @@ -140,7 +140,7 @@ def front_port_explicit() -> FrontPort: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="110-punch", color="0000ff", metadata={"source": "example"}, ), diff --git a/docs/examples/interface_example.py b/docs/examples/interface_example.py index c07d258..60eba36 100644 --- a/docs/examples/interface_example.py +++ b/docs/examples/interface_example.py @@ -61,7 +61,7 @@ def interface_example_minimal() -> Interface: return Interface( device="Example Device", # flat string -> Device name="Example Name", - type="1.6tbase-cr8", + type="1000base-t", metadata={"source": "example"}, ) @@ -71,7 +71,7 @@ def interface_example_extended() -> Interface: return Interface( device="Example Device", name="Example Name", - type="1.6tbase-cr8", + type="1000base-t", metadata={"source": "example", "custom_key": "custom_value"}, description="Example description", label="Example Label", @@ -84,8 +84,8 @@ def interface_example_extended() -> Interface: mode="access", rf_role="ap", rf_channel="2.4g-1-2412-22", - poe_mode="pd", - poe_type="passive-24v-2pair", + poe_mode="pse", + poe_type="type1-ieee802.3af", rf_channel_frequency=1.0, rf_channel_width=1.0, tx_power=1, @@ -123,7 +123,7 @@ def interface_example_explicit() -> Interface: metadata={"source": "example"}, ), name="Example Name", - type="1.6tbase-cr8", + type="1000base-t", metadata={ "source": "example", "custom_key": "custom_value", @@ -140,8 +140,8 @@ def interface_example_explicit() -> Interface: mode="access", rf_role="ap", rf_channel="2.4g-1-2412-22", - poe_mode="pd", - poe_type="passive-24v-2pair", + poe_mode="pse", + poe_type="type1-ieee802.3af", rf_channel_frequency=1.0, rf_channel_width=1.0, tx_power=1, @@ -243,7 +243,7 @@ def interface_example_explicit() -> Interface: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="1000base-t", metadata={"source": "example"}, ), bridge=Interface( @@ -274,7 +274,7 @@ def interface_example_explicit() -> Interface: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="1000base-t", metadata={"source": "example"}, ), lag=Interface( @@ -305,7 +305,7 @@ def interface_example_explicit() -> Interface: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="1000base-t", metadata={"source": "example"}, ), primary_mac_address=MACAddress( diff --git a/docs/examples/inventory_item.py b/docs/examples/inventory_item.py index 56ce544..1aafbf0 100644 --- a/docs/examples/inventory_item.py +++ b/docs/examples/inventory_item.py @@ -9,15 +9,22 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( + ConsolePort, + ConsoleServerPort, Device, DeviceRole, DeviceType, Entity, + FrontPort, + Interface, InventoryItem, InventoryItemRole, Manufacturer, Owner, OwnerGroup, + PowerOutlet, + PowerPort, + RearPort, Site, Tag, ) @@ -164,6 +171,44 @@ def inventory_item_explicit() -> InventoryItem: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'component' — choose ONE of these mutually exclusive variants: + component_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name", + type="1000base-t", + metadata={"source": "example"}, + ), + # component_console_port=ConsolePort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # component_console_server_port=ConsoleServerPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # component_front_port=FrontPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", rear_port=RearPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", metadata={"source": "example"}), metadata={"source": "example"}), + # component_power_outlet=PowerOutlet(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", color="0000ff", status="disabled", metadata={"source": "example"}), + # component_power_port=PowerPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # component_rear_port=RearPort(device=Device(device_type=DeviceType(manufacturer=Manufacturer(name="Example Name", slug="example-slug", metadata={"source": "example"}), model="Model X", slug="example-slug", metadata={"source": "example"}), role=DeviceRole(name="Example Name", slug="example-slug", color="0000ff", metadata={"source": "example"}), site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), name="Example Name", type="110-punch", color="0000ff", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/ip_address.py b/docs/examples/ip_address.py index 7b61aba..89fa49c 100644 --- a/docs/examples/ip_address.py +++ b/docs/examples/ip_address.py @@ -9,13 +9,22 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( + Device, + DeviceRole, + DeviceType, Entity, + FHRPGroup, IPAddress, + Interface, + Manufacturer, Owner, OwnerGroup, + Site, Tag, Tenant, + VMInterface, VRF, + VirtualMachine, ) TARGET = "grpc://localhost:8080/diode" @@ -63,7 +72,7 @@ def ip_address_extended() -> IPAddress: description="Example description", tenant="Example Tenant", role="anycast", - dns_name="Example Dns Name", + dns_name="example.host.local", comments="Example comments", ) @@ -81,7 +90,7 @@ def ip_address_explicit() -> IPAddress: description="Example description", comments="Example comments", role="anycast", - dns_name="Example Dns Name", + dns_name="example.host.local", vrf=VRF(name="Example Name", metadata={"source": "example"}), tenant=Tenant( name="Example Name", slug="example-slug", metadata={"source": "example"} @@ -94,6 +103,40 @@ def ip_address_explicit() -> IPAddress: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'assigned_object' — choose ONE of these mutually exclusive variants: + assigned_object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name", + type="1000base-t", + metadata={"source": "example"}, + ), + # assigned_object_vm_interface=VMInterface(virtual_machine=VirtualMachine(name="Example Name", status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), + # assigned_object_fhrp_group=FHRPGroup(protocol="carp", group_id=1, metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/mac_address.py b/docs/examples/mac_address.py index ea08a07..0a72564 100644 --- a/docs/examples/mac_address.py +++ b/docs/examples/mac_address.py @@ -9,11 +9,19 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( + Device, + DeviceRole, + DeviceType, Entity, + Interface, MACAddress, + Manufacturer, Owner, OwnerGroup, + Site, Tag, + VMInterface, + VirtualMachine, ) TARGET = "grpc://localhost:8080/diode" @@ -78,6 +86,39 @@ def mac_address_explicit() -> MACAddress: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'assigned_object' — choose ONE of these mutually exclusive variants: + assigned_object_interface=Interface( + device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + name="Example Name", + type="1000base-t", + metadata={"source": "example"}, + ), + # assigned_object_vm_interface=VMInterface(virtual_machine=VirtualMachine(name="Example Name", status="active", metadata={"source": "example"}), name="Example Name", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/prefix.py b/docs/examples/prefix.py index 0898a58..889a0b1 100644 --- a/docs/examples/prefix.py +++ b/docs/examples/prefix.py @@ -10,10 +10,14 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( Entity, + Location, Owner, OwnerGroup, Prefix, + Region, Role, + Site, + SiteGroup, Tag, Tenant, VLAN, @@ -100,6 +104,16 @@ def prefix_explicit() -> Prefix: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'scope' — choose ONE of these mutually exclusive variants: + scope_site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + # scope_location=Location(name="Example Name", slug="example-slug", site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # scope_region=Region(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # scope_site_group=SiteGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/rack.py b/docs/examples/rack.py index 077b8e9..e4df201 100644 --- a/docs/examples/rack.py +++ b/docs/examples/rack.py @@ -75,7 +75,7 @@ def rack_extended() -> Rack: role="Example Role", asset_tag="ASSET-001", form_factor="2-post-frame", - width=1, + width=10, u_height=1, starting_unit=1, weight=1.0, @@ -114,7 +114,7 @@ def rack_explicit() -> Rack: asset_tag="ASSET-001", facility_id="Example Facility Id", form_factor="2-post-frame", - width=1, + width=10, u_height=1, starting_unit=1, weight=1.0, diff --git a/docs/examples/rack_reservation.py b/docs/examples/rack_reservation.py index 5ecedc9..75b88ed 100644 --- a/docs/examples/rack_reservation.py +++ b/docs/examples/rack_reservation.py @@ -17,6 +17,7 @@ Site, Tag, Tenant, + User, ) TARGET = "grpc://localhost:8080/diode" @@ -53,6 +54,7 @@ def rack_reservation_minimal() -> RackReservation: rack="Example Rack", # flat string -> Rack description="Example description", metadata={"source": "example"}, + user="Example User", # flat string -> User ) @@ -62,6 +64,7 @@ def rack_reservation_extended() -> RackReservation: rack="Example Rack", description="Example description", metadata={"source": "example", "custom_key": "custom_value"}, + user="Example User", status="active", tenant="Example Tenant", comments="Example comments", @@ -88,6 +91,7 @@ def rack_reservation_explicit() -> RackReservation: "custom_key": "custom_value", "collected_at": "2024-01-15T10:30:00Z", }, + user=User(username="Example Username", metadata={"source": "example"}), status="active", comments="Example comments", tenant=Tenant( diff --git a/docs/examples/rack_type.py b/docs/examples/rack_type.py index ee4f3f4..5ae26f6 100644 --- a/docs/examples/rack_type.py +++ b/docs/examples/rack_type.py @@ -64,7 +64,7 @@ def rack_type_extended() -> RackType: metadata={"source": "example", "custom_key": "custom_value"}, description="Example description", form_factor="2-post-frame", - width=1, + width=10, u_height=1, starting_unit=1, desc_units=True, @@ -96,7 +96,7 @@ def rack_type_explicit() -> RackType: description="Example description", comments="Example comments", form_factor="2-post-frame", - width=1, + width=10, u_height=1, starting_unit=1, desc_units=True, diff --git a/docs/examples/service.py b/docs/examples/service.py index 2b00f73..b6e21b4 100644 --- a/docs/examples/service.py +++ b/docs/examples/service.py @@ -13,6 +13,7 @@ DeviceRole, DeviceType, Entity, + FHRPGroup, Manufacturer, Owner, OwnerGroup, @@ -116,6 +117,35 @@ def service_explicit() -> Service: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'parent_object' — choose ONE of these mutually exclusive variants: + parent_object_device=Device( + device_type=DeviceType( + manufacturer=Manufacturer( + name="Example Name", + slug="example-slug", + metadata={"source": "example"}, + ), + model="Model X", + slug="example-slug", + metadata={"source": "example"}, + ), + role=DeviceRole( + name="Example Name", + slug="example-slug", + color="0000ff", + metadata={"source": "example"}, + ), + site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + status="active", + metadata={"source": "example"}, + ), + # parent_object_fhrp_group=FHRPGroup(protocol="carp", group_id=1, metadata={"source": "example"}), + # parent_object_virtual_machine=VirtualMachine(name="Example Name", status="active", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/tunnel.py b/docs/examples/tunnel.py index 44a9512..0cb2371 100644 --- a/docs/examples/tunnel.py +++ b/docs/examples/tunnel.py @@ -92,7 +92,7 @@ def tunnel_explicit() -> Tunnel: ), ipsec_profile=IPSecProfile( name="Example Name", - mode="Example Mode", + mode="ah", ike_policy=IKEPolicy( name="Example Name", version=1, metadata={"source": "example"} ), diff --git a/docs/examples/tunnel_termination.py b/docs/examples/tunnel_termination.py index e34ade2..2293571 100644 --- a/docs/examples/tunnel_termination.py +++ b/docs/examples/tunnel_termination.py @@ -70,7 +70,7 @@ def tunnel_termination_explicit() -> TunnelTermination: tunnel=Tunnel( name="Example Name", status="active", - encapsulation="Example Encapsulation", + encapsulation="gre", metadata={"source": "example"}, ), role="hub", diff --git a/docs/examples/virtual_circuit_termination.py b/docs/examples/virtual_circuit_termination.py index 907794b..802395c 100644 --- a/docs/examples/virtual_circuit_termination.py +++ b/docs/examples/virtual_circuit_termination.py @@ -125,7 +125,7 @@ def virtual_circuit_termination_explicit() -> VirtualCircuitTermination: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="1000base-t", metadata={"source": "example"}, ), metadata={ diff --git a/docs/examples/vlan_group.py b/docs/examples/vlan_group.py index 2c75c61..253ac5f 100644 --- a/docs/examples/vlan_group.py +++ b/docs/examples/vlan_group.py @@ -9,9 +9,18 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( + Cluster, + ClusterGroup, + ClusterType, Entity, + Location, Owner, OwnerGroup, + Rack, + RackGroup, + Region, + Site, + SiteGroup, Tag, Tenant, VLANGroup, @@ -86,6 +95,20 @@ def vlan_group_explicit() -> VLANGroup: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'scope' — choose ONE of these mutually exclusive variants: + scope_site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + # scope_cluster=Cluster(name="Example Name", type=ClusterType(name="Example Name", slug="example-slug", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # scope_cluster_group=ClusterGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # scope_location=Location(name="Example Name", slug="example-slug", site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # scope_rack=Rack(name="Example Name", site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # scope_region=Region(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # scope_site_group=SiteGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # scope_rack_group=RackGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/wireless_lan.py b/docs/examples/wireless_lan.py index 0e21827..4c5cf13 100644 --- a/docs/examples/wireless_lan.py +++ b/docs/examples/wireless_lan.py @@ -10,8 +10,12 @@ from netboxlabs.diode.sdk import DiodeClient from netboxlabs.diode.sdk.ingester import ( Entity, + Location, Owner, OwnerGroup, + Region, + Site, + SiteGroup, Tag, Tenant, VLAN, @@ -99,6 +103,16 @@ def wireless_lan_explicit() -> WirelessLAN: group=OwnerGroup(name="Example Name", metadata={"source": "example"}), metadata={"source": "example"}, ), + # Polymorphic 'scope' — choose ONE of these mutually exclusive variants: + scope_site=Site( + name="Example Name", + slug="example-slug", + status="active", + metadata={"source": "example"}, + ), + # scope_location=Location(name="Example Name", slug="example-slug", site=Site(name="Example Name", slug="example-slug", status="active", metadata={"source": "example"}), status="active", metadata={"source": "example"}), + # scope_region=Region(name="Example Name", slug="example-slug", metadata={"source": "example"}), + # scope_site_group=SiteGroup(name="Example Name", slug="example-slug", metadata={"source": "example"}), tags=[Tag(name="production")], ) diff --git a/docs/examples/wireless_link.py b/docs/examples/wireless_link.py index a22335e..21f7e31 100644 --- a/docs/examples/wireless_link.py +++ b/docs/examples/wireless_link.py @@ -66,7 +66,7 @@ def wireless_link_extended() -> WirelessLink: interface_a="Example Interface A", interface_b="Example Interface B", metadata={"source": "example", "custom_key": "custom_value"}, - status="connected", + status="planned", description="Example description", ssid="ExampleSSID", tenant="Example Tenant", @@ -110,7 +110,7 @@ def wireless_link_explicit() -> WirelessLink: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="1000base-t", metadata={"source": "example"}, ), interface_b=Interface( @@ -141,7 +141,7 @@ def wireless_link_explicit() -> WirelessLink: metadata={"source": "example"}, ), name="Example Name", - type="Example Type", + type="1000base-t", metadata={"source": "example"}, ), metadata={ @@ -149,7 +149,7 @@ def wireless_link_explicit() -> WirelessLink: "custom_key": "custom_value", "collected_at": "2024-01-15T10:30:00Z", }, - status="connected", + status="planned", description="Example description", comments="Example comments", ssid="ExampleSSID", diff --git a/netboxlabs/diode/sdk/client.py b/netboxlabs/diode/sdk/client.py index 1334366..3645769 100644 --- a/netboxlabs/diode/sdk/client.py +++ b/netboxlabs/diode/sdk/client.py @@ -7,11 +7,14 @@ import logging import os import platform +import random import sys import tempfile import time import uuid -from collections.abc import Iterable +from collections.abc import Callable, Iterable +from datetime import datetime, timezone +from email.utils import parsedate_to_datetime from pathlib import Path from typing import Any from urllib.parse import urlparse @@ -50,6 +53,8 @@ _INGEST_SCOPE = "diode:ingest" _LOGGER = logging.getLogger(__name__) _MAX_RETRIES_ENVVAR_NAME = "DIODE_MAX_AUTH_RETRIES" +_AUTH_INITIAL_RETRY_DELAY = 1.0 +_AUTH_MAX_RETRY_DELAY = 30.0 # server policy (MinTime 10s so client pings must be >= 10s, e.g. 30s interval). _GRPC_KEEPALIVE_TIME_MS = 30_000 _GRPC_KEEPALIVE_TIMEOUT_MS = 10_000 @@ -342,6 +347,12 @@ def __init__( _DIODE_CERT_FILE_ENVVAR_NAME, cert_file ) self._target, self._path, self._tls_verify = parse_target(target) + # Whether the target scheme is secure (grpcs/https). Kept separately from + # tls_verify, which only controls certificate verification: tls_verify is + # False both for an insecure grpc:// target and for a grpcs:// target with + # verification disabled, so it cannot by itself tell the auth endpoint + # which scheme to use. + self._secure = urlparse(target).scheme in ("grpcs", "https") # Load certificates once if needed self._certificates = ( @@ -541,6 +552,8 @@ def _authenticate(self, scope: str): self._app_version, self._certificates, self._cert_file, + max_retries=self._max_auth_retries, + secure=self._secure, ) access_token = authentication_client.authenticate() self._metadata = list( @@ -932,9 +945,15 @@ def __init__( app_version: str, certificates: bytes | None = None, cert_file: str | None = None, + max_retries: int = 3, + initial_retry_delay: float | None = None, + max_retry_delay: float | None = None, + sleep: Callable[[float], None] | None = None, + secure: bool = True, ): self._target = target self._tls_verify = tls_verify + self._secure = secure self._client_id = client_id self._client_secret = client_secret self._path = path @@ -945,6 +964,14 @@ def __init__( self._app_version = app_version self._certificates = certificates self._cert_file = cert_file + self._max_retries = max_retries + self._initial_retry_delay = ( + _AUTH_INITIAL_RETRY_DELAY if initial_retry_delay is None else initial_retry_delay + ) + self._max_retry_delay = ( + _AUTH_MAX_RETRY_DELAY if max_retry_delay is None else max_retry_delay + ) + self._sleep = sleep or time.sleep def authenticate(self) -> str: """Request an OAuth2 token using client credentials and return it.""" @@ -952,53 +979,8 @@ def authenticate(self) -> str: temp_cert_file = None try: - # Configure SSL verification - if self._tls_verify and self._certificates: - # Use cert_file path directly if available, otherwise write to temp file - if self._cert_file: - session.verify = self._cert_file - else: - # Write certificates to temp file for requests - with tempfile.NamedTemporaryFile( - mode="wb", delete=False, suffix=".pem" - ) as f: - f.write(self._certificates) - temp_cert_file = f.name - session.verify = temp_cert_file - elif not self._tls_verify: - session.verify = False - - # Prepare auth request - url = self._get_full_auth_url() - data = { - "grant_type": "client_credentials", - "client_id": self._client_id, - "client_secret": self._client_secret, - "scope": self._scope, - } - headers = { - "Content-Type": "application/x-www-form-urlencoded", - "User-Agent": f"{self._sdk_name}/{self._sdk_version} {self._app_name}/{self._app_version}", - } - - response = session.post(url, data=data, headers=headers) - - if response.status_code != 200: - raise DiodeConfigError( - f"Failed to obtain access token: {response.reason}" - ) - - token_info = response.json() - access_token = token_info.get("access_token") - - if not access_token: - raise DiodeConfigError( - f"Failed to obtain access token for client {self._client_id}" - ) - - _LOGGER.debug(f"Access token obtained for client {self._client_id}") - return access_token - + temp_cert_file = self._configure_auth_session(session) + return self._request_access_token(session) except requests.RequestException as e: raise DiodeConfigError(f"Failed to obtain access token: {e}") finally: @@ -1012,6 +994,73 @@ def authenticate(self) -> str: f"Failed to clean up temp certificate file {temp_cert_file}: {e}" ) + def _configure_auth_session(self, session: requests.Session) -> str | None: + temp_cert_file = None + if self._tls_verify and self._certificates: + # Use cert_file path directly if available, otherwise write to temp file + if self._cert_file: + session.verify = self._cert_file + else: + # Write certificates to temp file for requests + with tempfile.NamedTemporaryFile( + mode="wb", delete=False, suffix=".pem" + ) as f: + f.write(self._certificates) + temp_cert_file = f.name + session.verify = temp_cert_file + elif not self._tls_verify: + session.verify = False + return temp_cert_file + + def _request_access_token(self, session: requests.Session) -> str: + url = self._get_full_auth_url() + data = { + "grant_type": "client_credentials", + "client_id": self._client_id, + "client_secret": self._client_secret, + "scope": self._scope, + } + headers = { + "Content-Type": "application/x-www-form-urlencoded", + "User-Agent": f"{self._sdk_name}/{self._sdk_version} {self._app_name}/{self._app_version}", + } + + last_error = "Failed to obtain access token" + for attempt in range(1, self._max_retries + 1): + response = session.post(url, data=data, headers=headers) + + if response.status_code == 200: + access_token = response.json().get("access_token") + if not access_token: + raise DiodeConfigError( + f"Failed to obtain access token for client {self._client_id}" + ) + _LOGGER.debug(f"Access token obtained for client {self._client_id}") + return access_token + + last_error = f"Failed to obtain access token: {response.reason}" + if not _is_retriable_auth_http_status(response.status_code) or attempt >= self._max_retries: + raise DiodeConfigError(last_error) + + delay = _auth_retry_delay( + attempt, + response.status_code, + response.headers.get("Retry-After"), + self._initial_retry_delay, + self._max_retry_delay, + ) + _LOGGER.debug( + "Auth token request failed, retrying", + extra={ + "status_code": response.status_code, + "attempt": attempt, + "retry_in": delay, + }, + ) + self._sleep(delay) + + raise DiodeConfigError(last_error) + def _get_auth_url(self) -> str: """Construct the authentication URL, handling trailing slashes in the path.""" # Ensure the path does not have trailing slashes @@ -1019,23 +1068,62 @@ def _get_auth_url(self) -> str: return f"{path}/auth/token" def _get_full_auth_url(self) -> str: - """Construct full authentication URL with scheme and authority.""" - # Determine the correct scheme - # If tls_verify is False, check if SKIP_TLS_VERIFY was set - # If it was set, the original scheme was likely HTTPS but verification is disabled - skip_tls_env = os.getenv(_DIODE_SKIP_TLS_VERIFY_ENVVAR_NAME, "").lower() - skip_tls_from_env = skip_tls_env in ["true", "1", "yes", "on"] - - # Use HTTPS if: - # 1. tls_verify is True, OR - # 2. tls_verify is False but SKIP_TLS_VERIFY is set (original was HTTPS) - use_https = self._tls_verify or (not self._tls_verify and skip_tls_from_env) - scheme = "https" if use_https else "http" - + """ + Construct full authentication URL, matching the target's scheme. + + The scheme follows the target (https for grpcs/https, http for grpc/http) + and is independent of certificate verification, which is handled separately + via the session's verify setting. This keeps an insecure grpc:// target on + HTTP even when DIODE_SKIP_TLS_VERIFY is set. + """ + scheme = "https" if self._secure else "http" path = self._path.rstrip("/") if self._path else "" return f"{scheme}://{self._target}{path}/auth/token" +def _is_retriable_auth_http_status(status_code: int) -> bool: + return status_code in {429, 500, 502, 503} + + +def _parse_retry_after(value: str | None) -> float | None: + if not value or not isinstance(value, str): + return None + try: + seconds = int(value) + except ValueError: + seconds = None + else: + if seconds < 0: + return None + return float(seconds) + + try: + retry_at = parsedate_to_datetime(value) + if retry_at.tzinfo is None: + retry_at = retry_at.replace(tzinfo=timezone.utc) + delay = (retry_at - datetime.now(retry_at.tzinfo)).total_seconds() + return max(delay, 0.0) + except (TypeError, ValueError, OverflowError): + return None + + +def _auth_retry_delay( + attempt: int, + status_code: int, + retry_after: str | None, + initial_delay: float, + max_delay: float, +) -> float: + delay: float | None = None + if status_code in (429, 503): + delay = _parse_retry_after(retry_after) + if delay is None: + delay = initial_delay * (2 ** (attempt - 1)) + delay = min(delay, max_delay) + delay += random.uniform(0, delay / 4) + return min(delay, max_delay) + + class _ClientCallDetails( collections.namedtuple( "_ClientCallDetails", diff --git a/netboxlabs/diode/sdk/client.pyi b/netboxlabs/diode/sdk/client.pyi deleted file mode 100644 index 43022d0..0000000 --- a/netboxlabs/diode/sdk/client.pyi +++ /dev/null @@ -1,29 +0,0 @@ -from __future__ import annotations - -from collections.abc import Iterable -from typing import Any, Protocol, runtime_checkable - -from netboxlabs.diode.sdk.diode.v1 import ingester_pb2 -from netboxlabs.diode.sdk.ingester import Entity - -_DEFAULT_STREAM: str - -Metadata = dict[str, Any] - -@runtime_checkable -class DiodeClientInterface(Protocol): - """Interface implemented by diode clients.""" - - @property - def name(self) -> str: ... - @property - def version(self) -> str: ... - def ingest( - self, - entities: Iterable[Entity | ingester_pb2.Entity | None], - stream: str | None = _DEFAULT_STREAM, - *, - metadata: Metadata | None = None, - ) -> ingester_pb2.IngestResponse: ... - def __enter__(self) -> DiodeClientInterface: ... - def __exit__(self, exc_type, exc_value, exc_traceback) -> None: ... diff --git a/netboxlabs/diode/sdk/diode/v1/ingester_pb2.py b/netboxlabs/diode/sdk/diode/v1/ingester_pb2.py index 265ce67..44e3030 100644 --- a/netboxlabs/diode/sdk/diode/v1/ingester_pb2.py +++ b/netboxlabs/diode/sdk/diode/v1/ingester_pb2.py @@ -12,13 +12,13 @@ _sym_db = _symbol_database.Default() -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 from netboxlabs.diode.sdk.validate import validate_pb2 as validate_dot_validate__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x64iode/v1/ingester.proto\x12\x08\x64iode.v1\x1a\x1fgoogle/protobuf/timestamp.proto\x1a google/protobuf/descriptor.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x17validate/validate.proto\"\x9b/\n\x06\x45ntity\x12\x44\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xfa\x42\x07\xb2\x01\x04\x08\x01\x38\x01R\ttimestamp\x12!\n\x03\x61sn\x18\x02 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x03\x61sn\x12\x31\n\tasn_range\x18\x03 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x08\x61snRange\x12\x33\n\taggregate\x18\x04 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\taggregate\x12\'\n\x05\x63\x61\x62le\x18\x05 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x05\x63\x61\x62le\x12\x34\n\ncable_path\x18\x06 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\tcablePath\x12M\n\x11\x63\x61\x62le_termination\x18\x07 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x10\x63\x61\x62leTermination\x12-\n\x07\x63ircuit\x18\x08 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x07\x63ircuit\x12=\n\rcircuit_group\x18\t \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x0c\x63ircuitGroup\x12\\\n\x18\x63ircuit_group_assignment\x18\n \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x16\x63ircuitGroupAssignment\x12O\n\x13\x63ircuit_termination\x18\x0b \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x12\x63ircuitTermination\x12:\n\x0c\x63ircuit_type\x18\x0c \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x0b\x63ircuitType\x12-\n\x07\x63luster\x18\r \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x07\x63luster\x12=\n\rcluster_group\x18\x0e \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x0c\x63lusterGroup\x12:\n\x0c\x63luster_type\x18\x0f \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x0b\x63lusterType\x12:\n\x0c\x63onsole_port\x18\x10 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x0b\x63onsolePort\x12M\n\x13\x63onsole_server_port\x18\x11 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x11\x63onsoleServerPort\x12-\n\x07\x63ontact\x18\x12 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x07\x63ontact\x12L\n\x12\x63ontact_assignment\x18\x13 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x11\x63ontactAssignment\x12=\n\rcontact_group\x18\x14 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x0c\x63ontactGroup\x12:\n\x0c\x63ontact_role\x18\x15 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x0b\x63ontactRole\x12*\n\x06\x64\x65vice\x18\x16 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x06\x64\x65vice\x12\x34\n\ndevice_bay\x18\x17 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\tdeviceBay\x12\x37\n\x0b\x64\x65vice_role\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\ndeviceRole\x12\x37\n\x0b\x64\x65vice_type\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\ndeviceType\x12\x34\n\nfhrp_group\x18\x1a \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\tfhrpGroup\x12S\n\x15\x66hrp_group_assignment\x18\x1b \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x13\x66hrpGroupAssignment\x12\x34\n\nfront_port\x18\x1c \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\tfrontPort\x12\x34\n\nike_policy\x18\x1d \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\tikePolicy\x12:\n\x0cike_proposal\x18\x1e \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x0bikeProposal\x12\x34\n\nip_address\x18\x1f \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\tipAddress\x12.\n\x08ip_range\x18 \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x07ipRange\x12;\n\rip_sec_policy\x18! \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x0bipSecPolicy\x12>\n\x0eip_sec_profile\x18\" \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x0cipSecProfile\x12\x41\n\x0fip_sec_proposal\x18# \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\ripSecProposal\x12\x33\n\tinterface\x18$ \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\tinterface\x12@\n\x0einventory_item\x18% \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\rinventoryItem\x12M\n\x13inventory_item_role\x18& \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x11inventoryItemRole\x12\'\n\x05l2vpn\x18\' \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x05l2vpn\x12I\n\x11l2vpn_termination\x18( \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x10l2vpnTermination\x12\x30\n\x08location\x18) \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x08location\x12\x37\n\x0bmac_address\x18* \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\nmacAddress\x12<\n\x0cmanufacturer\x18+ \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x0cmanufacturer\x12*\n\x06module\x18, \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x12\x34\n\nmodule_bay\x18- \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\tmoduleBay\x12\x37\n\x0bmodule_type\x18. \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\nmoduleType\x12\x30\n\x08platform\x18/ \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x08platform\x12\x34\n\npower_feed\x18\x30 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\tpowerFeed\x12:\n\x0cpower_outlet\x18\x31 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x0bpowerOutlet\x12\x37\n\x0bpower_panel\x18\x32 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\npowerPanel\x12\x34\n\npower_port\x18\x33 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\tpowerPort\x12*\n\x06prefix\x18\x34 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x06prefix\x12\x30\n\x08provider\x18\x35 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x08provider\x12\x46\n\x10provider_account\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x12\x46\n\x10provider_network\x18\x37 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x0fproviderNetwork\x12!\n\x03rir\x18\x38 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x03rir\x12$\n\x04rack\x18\x39 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x04rack\x12\x46\n\x10rack_reservation\x18: \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x0frackReservation\x12\x31\n\track_role\x18; \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x08rackRole\x12\x31\n\track_type\x18< \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x08rackType\x12\x31\n\trear_port\x18= \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x08rearPort\x12*\n\x06region\x18> \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x06region\x12$\n\x04role\x18? \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x04role\x12:\n\x0croute_target\x18@ \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x0brouteTarget\x12-\n\x07service\x18\x41 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x07service\x12$\n\x04site\x18\x42 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x04site\x12\x34\n\nsite_group\x18\x43 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\tsiteGroup\x12!\n\x03tag\x18\x44 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x03tag\x12*\n\x06tenant\x18\x45 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x12:\n\x0ctenant_group\x18\x46 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x0btenantGroup\x12*\n\x06tunnel\x18G \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x06tunnel\x12:\n\x0ctunnel_group\x18H \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x0btunnelGroup\x12L\n\x12tunnel_termination\x18I \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x11tunnelTermination\x12$\n\x04vlan\x18J \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x04vlan\x12\x34\n\nvlan_group\x18K \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\tvlanGroup\x12Y\n\x17vlan_translation_policy\x18L \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x15vlanTranslationPolicy\x12S\n\x15vlan_translation_rule\x18M \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x13vlanTranslationRule\x12:\n\x0cvm_interface\x18N \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x0bvmInterface\x12!\n\x03vrf\x18O \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x03vrf\x12\x43\n\x0fvirtual_chassis\x18P \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x0evirtualChassis\x12\x43\n\x0fvirtual_circuit\x18Q \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x0evirtualCircuit\x12\x65\n\x1bvirtual_circuit_termination\x18R \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x19virtualCircuitTermination\x12P\n\x14virtual_circuit_type\x18S \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x12virtualCircuitType\x12V\n\x16virtual_device_context\x18T \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x14virtualDeviceContext\x12:\n\x0cvirtual_disk\x18U \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x0bvirtualDisk\x12\x43\n\x0fvirtual_machine\x18V \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x0evirtualMachine\x12:\n\x0cwireless_lan\x18W \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x0bwirelessLan\x12J\n\x12wireless_lan_group\x18X \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x10wirelessLanGroup\x12=\n\rwireless_link\x18Y \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x0cwirelessLink\x12:\n\x0c\x63ustom_field\x18Z \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x0b\x63ustomField\x12W\n\x17\x63ustom_field_choice_set\x18[ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x14\x63ustomFieldChoiceSet\x12=\n\rjournal_entry\x18\\ \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x0cjournalEntry\x12M\n\x13module_type_profile\x18] \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x11moduleTypeProfile\x12\x37\n\x0b\x63ustom_link\x18^ \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\ncustomLink\x12\'\n\x05owner\x18_ \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x05owner\x12\x37\n\x0bowner_group\x18` \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\nownerGroup\x12\x43\n\rdevice_config\x18\x61 \x01(\x0b\x32\x16.diode.v1.DeviceConfigB\x04\x88\xb5\x18\x00H\x00R\x0c\x64\x65viceConfig\x12:\n\x0c\x63\x61\x62le_bundle\x18\x62 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x0b\x63\x61\x62leBundle\x12\x34\n\nrack_group\x18\x63 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\trackGroup\x12=\n\rscript_module\x18\x64 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x0cscriptModule\x12P\n\x14virtual_machine_type\x18\x65 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x12virtualMachineTypeB\x08\n\x06\x65ntity\"\x99\x03\n\rIngestRequest\x12\"\n\x06stream\x18\x01 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x06stream\x12\x39\n\x08\x65ntities\x18\x02 \x03(\x0b\x32\x10.diode.v1.EntityB\x0b\xfa\x42\x08\x92\x01\x05\x08\x01\x10\xe8\x07R\x08\x65ntities\x12\x18\n\x02id\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01R\x02id\x12\x36\n\x11producer_app_name\x18\x04 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x0fproducerAppName\x12<\n\x14producer_app_version\x18\x05 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x12producerAppVersion\x12%\n\x08sdk_name\x18\x06 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x07sdkName\x12=\n\x0bsdk_version\x18\x07 \x01(\tB\x1c\xfa\x42\x19r\x17\x32\x15^(\\d)+\\.(\\d)+\\.(\\d)+$R\nsdkVersion\x12\x33\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"(\n\x0eIngestResponse\x12\x16\n\x06\x65rrors\x18\x01 \x03(\tR\x06\x65rrors\"\xf3\x04\n\x03\x41SN\x12\x10\n\x03\x61sn\x18\x01 \x01(\x03R\x03\x61sn\x12$\n\x03rir\x18\x02 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x03rir\x88\x01\x01\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x44\n\rcustom_fields\x18\x07 \x03(\x0b\x32\x1f.diode.v1.ASN.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x12$\n\x05sites\x18\n \x03(\x0b\x32\x0e.diode.v1.SiteR\x05sites\x12\'\n\x04role\x18\x0b \x01(\x0b\x32\x0e.diode.v1.RoleH\x05R\x04role\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x06\n\x04_rirB\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_ownerB\x07\n\x05_role\"\xd6\x04\n\x08\x41SNRange\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x1f\n\x03rir\x18\x03 \x01(\x0b\x32\r.diode.v1.RIRR\x03rir\x12\x14\n\x05start\x18\x04 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x05 \x01(\x03R\x03\x65nd\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\t \x03(\x0b\x32$.diode.v1.ASNRange.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0c \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xef\x04\n\tAggregate\x12\x16\n\x06prefix\x18\x01 \x01(\tR\x06prefix\x12\x1f\n\x03rir\x18\x02 \x01(\x0b\x32\r.diode.v1.RIRR\x03rir\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12>\n\ndate_added\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\tdateAdded\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x06 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x07 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x08 \x03(\x0b\x32%.diode.v1.Aggregate.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\r\n\x0b_date_addedB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x89\r\n\x05\x43\x61\x62le\x12\xa1\x02\n\x04type\x18\x01 \x01(\tB\x87\x02\xfa\x42\x83\x02r\x80\x02R\x03\x61ocR\x04\x63\x61t3R\x04\x63\x61t5R\x05\x63\x61t5eR\x04\x63\x61t6R\x05\x63\x61t6aR\x04\x63\x61t7R\x05\x63\x61t7aR\x04\x63\x61t8R\x07\x63oaxialR\ndac-activeR\x0b\x64\x61\x63-passiveR\x07lmr-100R\x07lmr-200R\x07lmr-400R\x03mmfR\x07mmf-om1R\x07mmf-om2R\x07mmf-om3R\x07mmf-om4R\x07mmf-om5R\x0bmrj21-trunkR\x05powerR\x05rg-11R\x06rg-213R\x05rg-59R\x04rg-6R\x05rg-62R\x04rg-8R\x03smfR\x07smf-os1R\x07smf-os2R\x03usbH\x00R\x04type\x88\x01\x01\x12>\n\x0e\x61_terminations\x18\x02 \x03(\x0b\x32\x17.diode.v1.GenericObjectR\raTerminations\x12>\n\x0e\x62_terminations\x18\x03 \x03(\x0b\x32\x17.diode.v1.GenericObjectR\rbTerminations\x12G\n\x06status\x18\x04 \x01(\tB*\xfa\x42\'r%R\tconnectedR\x0f\x64\x65\x63ommissioningR\x07plannedH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x19\n\x05label\x18\x06 \x01(\tH\x03R\x05label\x88\x01\x01\x12\x19\n\x05\x63olor\x18\x07 \x01(\tH\x04R\x05\x63olor\x88\x01\x01\x12\x1b\n\x06length\x18\x08 \x01(\x01H\x05R\x06length\x88\x01\x01\x12\x42\n\x0blength_unit\x18\t \x01(\tB\x1c\xfa\x42\x19r\x17R\x02\x63mR\x02\x66tR\x02inR\x02kmR\x01mR\x02miH\x06R\nlengthUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\n \x01(\tH\x07R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x08R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x46\n\rcustom_fields\x18\r \x03(\x0b\x32!.diode.v1.Cable.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12\x95\x03\n\x07profile\x18\x0f \x01(\tB\xf5\x02\xfa\x42\xf1\x02r\xee\x02R\x12\x62reakout-1c2p-2c1pR\x12\x62reakout-1c4p-4c1pR\x12\x62reakout-1c6p-6c1pR\x1a\x62reakout-2c4p-8c1p-shuffleR\x0csingle-1c12pR\x0csingle-1c16pR\x0bsingle-1c1pR\x0bsingle-1c2pR\x0bsingle-1c4pR\x0bsingle-1c6pR\x0bsingle-1c8pR\x0btrunk-2c12pR\ntrunk-2c1pR\ntrunk-2c2pR\ntrunk-2c4pR\x12trunk-2c4p-shuffleR\ntrunk-2c6pR\ntrunk-2c8pR\ntrunk-4c1pR\ntrunk-4c2pR\ntrunk-4c4pR\x12trunk-4c4p-shuffleR\ntrunk-4c6pR\ntrunk-4c8pR\ntrunk-8c4pH\tR\x07profile\x88\x01\x01\x12*\n\x05owner\x18\x10 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x12\x32\n\x06\x62undle\x18\x11 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x0bR\x06\x62undle\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_typeB\t\n\x07_statusB\t\n\x07_tenantB\x08\n\x06_labelB\x08\n\x06_colorB\t\n\x07_lengthB\x0e\n\x0c_length_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\n\n\x08_profileB\x08\n\x06_ownerB\t\n\x07_bundle\"\xd9\x01\n\tCablePath\x12 \n\tis_active\x18\x01 \x01(\x08H\x00R\x08isActive\x88\x01\x01\x12$\n\x0bis_complete\x18\x02 \x01(\x08H\x01R\nisComplete\x88\x01\x01\x12\x1e\n\x08is_split\x18\x03 \x01(\x08H\x02R\x07isSplit\x88\x01\x01\x12\x39\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0c\n\n_is_activeB\x0e\n\x0c_is_completeB\x0b\n\t_is_split\"\x9e\x07\n\x10\x43\x61\x62leTermination\x12%\n\x05\x63\x61\x62le\x18\x01 \x01(\x0b\x32\x0f.diode.v1.CableR\x05\x63\x61\x62le\x12(\n\tcable_end\x18\x02 \x01(\tB\x0b\xfa\x42\x08r\x06R\x01\x41R\x01\x42R\x08\x63\x61\x62leEnd\x12\x66\n\x1ftermination_circuit_termination\x18\x03 \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x1dterminationCircuitTermination\x12Q\n\x18termination_console_port\x18\x04 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x16terminationConsolePort\x12\x64\n\x1ftermination_console_server_port\x18\x05 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1cterminationConsoleServerPort\x12K\n\x16termination_front_port\x18\x06 \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x14terminationFrontPort\x12J\n\x15termination_interface\x18\x07 \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x14terminationInterface\x12K\n\x16termination_power_feed\x18\x08 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x14terminationPowerFeed\x12Q\n\x18termination_power_outlet\x18\t \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x16terminationPowerOutlet\x12K\n\x16termination_power_port\x18\n \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x14terminationPowerPort\x12H\n\x15termination_rear_port\x18\x0b \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x13terminationRearPort\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\r\n\x0btermination\"\xd7\t\n\x07\x43ircuit\x12\x10\n\x03\x63id\x18\x01 \x01(\tR\x03\x63id\x12.\n\x08provider\x18\x02 \x01(\x0b\x32\x12.diode.v1.ProviderR\x08provider\x12I\n\x10provider_account\x18\x03 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x88\x01\x01\x12)\n\x04type\x18\x04 \x01(\x0b\x32\x15.diode.v1.CircuitTypeR\x04type\x12j\n\x06status\x18\x05 \x01(\tBM\xfa\x42JrHR\x06\x61\x63tiveR\x0e\x64\x65\x63ommissionedR\x0e\x64\x65provisioningR\x07offlineR\x07plannedR\x0cprovisioningH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x42\n\x0cinstall_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03R\x0binstallDate\x88\x01\x01\x12J\n\x10termination_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04R\x0fterminationDate\x88\x01\x01\x12$\n\x0b\x63ommit_rate\x18\t \x01(\x03H\x05R\ncommitRate\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\n \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x64istance\x18\x0b \x01(\x01H\x07R\x08\x64istance\x88\x01\x01\x12>\n\rdistance_unit\x18\x0c \x01(\tB\x14\xfa\x42\x11r\x0fR\x02\x66tR\x02kmR\x01mR\x02miH\x08R\x0c\x64istanceUnit\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\r \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0e \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x42\n\x0b\x61ssignments\x18\x0f \x03(\x0b\x32 .diode.v1.CircuitGroupAssignmentR\x0b\x61ssignments\x12H\n\rcustom_fields\x18\x10 \x03(\x0b\x32#.diode.v1.Circuit.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_provider_accountB\t\n\x07_statusB\t\n\x07_tenantB\x0f\n\r_install_dateB\x13\n\x11_termination_dateB\x0e\n\x0c_commit_rateB\x0e\n\x0c_descriptionB\x0b\n\t_distanceB\x10\n\x0e_distance_unitB\x0b\n\t_commentsB\x08\n\x06_owner\"\x95\x04\n\x0c\x43ircuitGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12-\n\x06tenant\x18\x04 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x06 \x03(\x0b\x32(.diode.v1.CircuitGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\t\n\x07_tenantB\x08\n\x06_ownerB\x0b\n\t_comments\"\x99\x03\n\x16\x43ircuitGroupAssignment\x12,\n\x05group\x18\x01 \x01(\x0b\x32\x16.diode.v1.CircuitGroupR\x05group\x12:\n\x0emember_circuit\x18\x02 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\rmemberCircuit\x12P\n\x16member_virtual_circuit\x18\x03 \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x14memberVirtualCircuit\x12N\n\x08priority\x18\x04 \x01(\tB-\xfa\x42*r(R\x08inactiveR\x07primaryR\tsecondaryR\x08tertiaryH\x01R\x08priority\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x08\n\x06memberB\x0b\n\t_priority\"\xc7\x08\n\x12\x43ircuitTermination\x12+\n\x07\x63ircuit\x18\x01 \x01(\x0b\x32\x11.diode.v1.CircuitR\x07\x63ircuit\x12(\n\tterm_side\x18\x02 \x01(\tB\x0b\xfa\x42\x08r\x06R\x01\x41R\x01ZR\x08termSide\x12G\n\x14termination_location\x18\x03 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x13terminationLocation\x12]\n\x1ctermination_provider_network\x18\x04 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1aterminationProviderNetwork\x12\x41\n\x12termination_region\x18\x05 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x11terminationRegion\x12;\n\x10termination_site\x18\x06 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x0fterminationSite\x12K\n\x16termination_site_group\x18\x07 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x14terminationSiteGroup\x12\"\n\nport_speed\x18\x08 \x01(\x03H\x01R\tportSpeed\x88\x01\x01\x12*\n\x0eupstream_speed\x18\t \x01(\x03H\x02R\rupstreamSpeed\x88\x01\x01\x12$\n\x0bxconnect_id\x18\n \x01(\tH\x03R\nxconnectId\x88\x01\x01\x12\x1c\n\x07pp_info\x18\x0b \x01(\tH\x04R\x06ppInfo\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0c \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\r \x01(\x08H\x06R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\x0e \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12S\n\rcustom_fields\x18\x0f \x03(\x0b\x32..diode.v1.CircuitTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x10 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0bterminationB\r\n\x0b_port_speedB\x11\n\x0f_upstream_speedB\x0e\n\x0c_xconnect_idB\n\n\x08_pp_infoB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connected\"\xfe\x03\n\x0b\x43ircuitType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.CircuitType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xb1\x07\n\x07\x43luster\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12)\n\x04type\x18\x02 \x01(\x0b\x32\x15.diode.v1.ClusterTypeR\x04type\x12\x31\n\x05group\x18\x03 \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x01R\x05group\x88\x01\x01\x12V\n\x06status\x18\x04 \x01(\tB9\xfa\x42\x36r4R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x07offlineR\x07plannedR\x07stagingH\x02R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x03R\x06tenant\x88\x01\x01\x12;\n\x0escope_location\x18\x06 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12\x35\n\x0cscope_region\x18\x07 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\t \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12%\n\x0b\x64\x65scription\x18\n \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12H\n\rcustom_fields\x18\r \x03(\x0b\x32#.diode.v1.Cluster.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x08\n\x06_groupB\t\n\x07_statusB\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xdb\x03\n\x0c\x43lusterGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x05 \x03(\x0b\x32(.diode.v1.ClusterGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xd9\x03\n\x0b\x43lusterType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x05 \x03(\x0b\x32\'.diode.v1.ClusterType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xde\x06\n\x0b\x43onsolePort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xab\x01\n\x04type\x18\x05 \x01(\tB\x91\x01\xfa\x42\x8d\x01r\x8a\x01R\x05\x64\x62-25R\x04\x64\x65-9R\nmini-din-8R\x05otherR\x05rj-11R\x05rj-12R\x05rj-45R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bH\x02R\x04type\x88\x01\x01\x12<\n\x05speed\x18\x06 \x01(\x03\x42!\xfa\x42\x1e\"\x1c\x30\xb0\t0\xe0\x12\x30\xc0%0\x80K0\x80\x96\x01\x30\x80\xac\x02\x30\x80\xc2\x03\x30\x80\x84\x07H\x03R\x05speed\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\x08 \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\n \x03(\x0b\x32\'.diode.v1.ConsolePort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x08\n\x06_speedB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\xea\x06\n\x11\x43onsoleServerPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xab\x01\n\x04type\x18\x05 \x01(\tB\x91\x01\xfa\x42\x8d\x01r\x8a\x01R\x05\x64\x62-25R\x04\x64\x65-9R\nmini-din-8R\x05otherR\x05rj-11R\x05rj-12R\x05rj-45R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bH\x02R\x04type\x88\x01\x01\x12<\n\x05speed\x18\x06 \x01(\x03\x42!\xfa\x42\x1e\"\x1c\x30\xb0\t0\xe0\x12\x30\xc0%0\x80K0\x80\x96\x01\x30\x80\xac\x02\x30\x80\xc2\x03\x30\x80\x84\x07H\x03R\x05speed\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\x08 \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18\n \x03(\x0b\x32-.diode.v1.ConsoleServerPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x08\n\x06_speedB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\xea\x05\n\x07\x43ontact\x12\x35\n\x05group\x18\x01 \x01(\x0b\x32\x16.diode.v1.ContactGroupB\x02\x18\x01H\x00R\x05group\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x19\n\x05title\x18\x03 \x01(\tH\x01R\x05title\x88\x01\x01\x12\x19\n\x05phone\x18\x04 \x01(\tH\x02R\x05phone\x88\x01\x01\x12\x19\n\x05\x65mail\x18\x05 \x01(\tH\x03R\x05\x65mail\x88\x01\x01\x12\x1d\n\x07\x61\x64\x64ress\x18\x06 \x01(\tH\x04R\x07\x61\x64\x64ress\x88\x01\x01\x12\x17\n\x04link\x18\x07 \x01(\tH\x05R\x04link\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x07R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12H\n\rcustom_fields\x18\x0b \x03(\x0b\x32#.diode.v1.Contact.CustomFieldsEntryR\x0c\x63ustomFields\x12.\n\x06groups\x18\x0c \x03(\x0b\x32\x16.diode.v1.ContactGroupR\x06groups\x12\x39\n\x08metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0e \x01(\x0b\x32\x0f.diode.v1.OwnerH\x08R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_groupB\x08\n\x06_titleB\x08\n\x06_phoneB\x08\n\x06_emailB\n\n\x08_addressB\x07\n\x05_linkB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xf4;\n\x11\x43ontactAssignment\x12.\n\nobject_asn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\tobjectAsn\x12>\n\x10object_asn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x0eobjectAsnRange\x12@\n\x10object_aggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x0fobjectAggregate\x12\x34\n\x0cobject_cable\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x0bobjectCable\x12\x41\n\x11object_cable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x0fobjectCablePath\x12Z\n\x18object_cable_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x16objectCableTermination\x12:\n\x0eobject_circuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\robjectCircuit\x12J\n\x14object_circuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x12objectCircuitGroup\x12i\n\x1fobject_circuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x1cobjectCircuitGroupAssignment\x12\\\n\x1aobject_circuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x18objectCircuitTermination\x12G\n\x13object_circuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x11objectCircuitType\x12:\n\x0eobject_cluster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\robjectCluster\x12J\n\x14object_cluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x12objectClusterGroup\x12G\n\x13object_cluster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x11objectClusterType\x12G\n\x13object_console_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x11objectConsolePort\x12Z\n\x1aobject_console_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x17objectConsoleServerPort\x12:\n\x0eobject_contact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\robjectContact\x12Y\n\x19object_contact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x17objectContactAssignment\x12J\n\x14object_contact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x12objectContactGroup\x12G\n\x13object_contact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x11objectContactRole\x12\x37\n\robject_device\x18\x15 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x0cobjectDevice\x12\x41\n\x11object_device_bay\x18\x16 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x0fobjectDeviceBay\x12\x44\n\x12object_device_role\x18\x17 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x10objectDeviceRole\x12\x44\n\x12object_device_type\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x10objectDeviceType\x12\x41\n\x11object_fhrp_group\x18\x19 \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x0fobjectFhrpGroup\x12`\n\x1cobject_fhrp_group_assignment\x18\x1a \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x19objectFhrpGroupAssignment\x12\x41\n\x11object_front_port\x18\x1b \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x0fobjectFrontPort\x12\x41\n\x11object_ike_policy\x18\x1c \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x0fobjectIkePolicy\x12G\n\x13object_ike_proposal\x18\x1d \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x11objectIkeProposal\x12\x41\n\x11object_ip_address\x18\x1e \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x0fobjectIpAddress\x12;\n\x0fobject_ip_range\x18\x1f \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\robjectIpRange\x12H\n\x14object_ip_sec_policy\x18 \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x11objectIpSecPolicy\x12K\n\x15object_ip_sec_profile\x18! \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x12objectIpSecProfile\x12N\n\x16object_ip_sec_proposal\x18\" \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x13objectIpSecProposal\x12@\n\x10object_interface\x18# \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x0fobjectInterface\x12M\n\x15object_inventory_item\x18$ \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x13objectInventoryItem\x12Z\n\x1aobject_inventory_item_role\x18% \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x17objectInventoryItemRole\x12\x34\n\x0cobject_l2vpn\x18& \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x0bobjectL2vpn\x12V\n\x18object_l2vpn_termination\x18\' \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x16objectL2vpnTermination\x12=\n\x0fobject_location\x18( \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x0eobjectLocation\x12\x44\n\x12object_mac_address\x18) \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x10objectMacAddress\x12I\n\x13object_manufacturer\x18* \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x12objectManufacturer\x12\x37\n\robject_module\x18+ \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x0cobjectModule\x12\x41\n\x11object_module_bay\x18, \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x0fobjectModuleBay\x12\x44\n\x12object_module_type\x18- \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x10objectModuleType\x12=\n\x0fobject_platform\x18. \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0eobjectPlatform\x12\x41\n\x11object_power_feed\x18/ \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x0fobjectPowerFeed\x12G\n\x13object_power_outlet\x18\x30 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x11objectPowerOutlet\x12\x44\n\x12object_power_panel\x18\x31 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x10objectPowerPanel\x12\x41\n\x11object_power_port\x18\x32 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x0fobjectPowerPort\x12\x37\n\robject_prefix\x18\x33 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x0cobjectPrefix\x12=\n\x0fobject_provider\x18\x34 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x0eobjectProvider\x12S\n\x17object_provider_account\x18\x35 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x15objectProviderAccount\x12S\n\x17object_provider_network\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x15objectProviderNetwork\x12.\n\nobject_rir\x18\x37 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\tobjectRir\x12\x31\n\x0bobject_rack\x18\x38 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\nobjectRack\x12S\n\x17object_rack_reservation\x18\x39 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x15objectRackReservation\x12>\n\x10object_rack_role\x18: \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x0eobjectRackRole\x12>\n\x10object_rack_type\x18; \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x0eobjectRackType\x12>\n\x10object_rear_port\x18< \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x0eobjectRearPort\x12\x37\n\robject_region\x18= \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0cobjectRegion\x12\x31\n\x0bobject_role\x18> \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\nobjectRole\x12G\n\x13object_route_target\x18? \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x11objectRouteTarget\x12:\n\x0eobject_service\x18@ \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\robjectService\x12\x31\n\x0bobject_site\x18\x41 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\nobjectSite\x12\x41\n\x11object_site_group\x18\x42 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0fobjectSiteGroup\x12.\n\nobject_tag\x18\x43 \x01(\x0b\x32\r.diode.v1.TagH\x00R\tobjectTag\x12\x37\n\robject_tenant\x18\x44 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x0cobjectTenant\x12G\n\x13object_tenant_group\x18\x45 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x11objectTenantGroup\x12\x37\n\robject_tunnel\x18\x46 \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x0cobjectTunnel\x12G\n\x13object_tunnel_group\x18G \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x11objectTunnelGroup\x12Y\n\x19object_tunnel_termination\x18H \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x17objectTunnelTermination\x12\x31\n\x0bobject_vlan\x18I \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\nobjectVlan\x12\x41\n\x11object_vlan_group\x18J \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x0fobjectVlanGroup\x12\x66\n\x1eobject_vlan_translation_policy\x18K \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x1bobjectVlanTranslationPolicy\x12`\n\x1cobject_vlan_translation_rule\x18L \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x19objectVlanTranslationRule\x12G\n\x13object_vm_interface\x18M \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x11objectVmInterface\x12.\n\nobject_vrf\x18N \x01(\x0b\x32\r.diode.v1.VRFH\x00R\tobjectVrf\x12P\n\x16object_virtual_chassis\x18O \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x14objectVirtualChassis\x12P\n\x16object_virtual_circuit\x18P \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x14objectVirtualCircuit\x12r\n\"object_virtual_circuit_termination\x18Q \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x1fobjectVirtualCircuitTermination\x12]\n\x1bobject_virtual_circuit_type\x18R \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x18objectVirtualCircuitType\x12\x63\n\x1dobject_virtual_device_context\x18S \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1aobjectVirtualDeviceContext\x12G\n\x13object_virtual_disk\x18T \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x11objectVirtualDisk\x12P\n\x16object_virtual_machine\x18U \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x14objectVirtualMachine\x12G\n\x13object_wireless_lan\x18V \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x11objectWirelessLan\x12W\n\x19object_wireless_lan_group\x18W \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x16objectWirelessLanGroup\x12J\n\x14object_wireless_link\x18X \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x12objectWirelessLink\x12G\n\x13object_custom_field\x18^ \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x11objectCustomField\x12\x64\n\x1eobject_custom_field_choice_set\x18_ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1aobjectCustomFieldChoiceSet\x12J\n\x14object_journal_entry\x18` \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x12objectJournalEntry\x12Z\n\x1aobject_module_type_profile\x18\x61 \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x17objectModuleTypeProfile\x12\x44\n\x12object_custom_link\x18\x62 \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x10objectCustomLink\x12\x34\n\x0cobject_owner\x18\x64 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x0bobjectOwner\x12\x44\n\x12object_owner_group\x18\x65 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x10objectOwnerGroup\x12G\n\x13object_cable_bundle\x18\x66 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x11objectCableBundle\x12\x41\n\x11object_rack_group\x18g \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x0fobjectRackGroup\x12J\n\x14object_script_module\x18h \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x12objectScriptModule\x12]\n\x1bobject_virtual_machine_type\x18i \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x18objectVirtualMachineType\x12+\n\x07\x63ontact\x18Y \x01(\x0b\x32\x11.diode.v1.ContactR\x07\x63ontact\x12.\n\x04role\x18Z \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x01R\x04role\x88\x01\x01\x12N\n\x08priority\x18[ \x01(\tB-\xfa\x42*r(R\x08inactiveR\x07primaryR\tsecondaryR\x08tertiaryH\x02R\x08priority\x88\x01\x01\x12!\n\x04tags\x18\\ \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18] \x03(\x0b\x32-.diode.v1.ContactAssignment.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x63 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06objectB\x07\n\x05_roleB\x0b\n\t_priority\"\x9b\x04\n\x0c\x43ontactGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x33\n\x06parent\x18\x03 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x06 \x03(\x0b\x32(.diode.v1.ContactGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd9\x03\n\x0b\x43ontactRole\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x05 \x03(\x0b\x32\'.diode.v1.ContactRole.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xa4.\n\x1a\x43ustomFieldObjectReference\x12!\n\x03\x61sn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x03\x61sn\x12\x31\n\tasn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x08\x61snRange\x12\x33\n\taggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\taggregate\x12\'\n\x05\x63\x61\x62le\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x05\x63\x61\x62le\x12\x34\n\ncable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\tcablePath\x12M\n\x11\x63\x61\x62le_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x10\x63\x61\x62leTermination\x12-\n\x07\x63ircuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x07\x63ircuit\x12=\n\rcircuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x0c\x63ircuitGroup\x12\\\n\x18\x63ircuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x16\x63ircuitGroupAssignment\x12O\n\x13\x63ircuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x12\x63ircuitTermination\x12:\n\x0c\x63ircuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x0b\x63ircuitType\x12-\n\x07\x63luster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x07\x63luster\x12=\n\rcluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x0c\x63lusterGroup\x12:\n\x0c\x63luster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x0b\x63lusterType\x12:\n\x0c\x63onsole_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x0b\x63onsolePort\x12M\n\x13\x63onsole_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x11\x63onsoleServerPort\x12-\n\x07\x63ontact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x07\x63ontact\x12L\n\x12\x63ontact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x11\x63ontactAssignment\x12=\n\rcontact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x0c\x63ontactGroup\x12:\n\x0c\x63ontact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x0b\x63ontactRole\x12*\n\x06\x64\x65vice\x18\x15 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x06\x64\x65vice\x12\x34\n\ndevice_bay\x18\x16 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\tdeviceBay\x12\x37\n\x0b\x64\x65vice_role\x18\x17 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\ndeviceRole\x12\x37\n\x0b\x64\x65vice_type\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\ndeviceType\x12\x34\n\nfhrp_group\x18\x19 \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\tfhrpGroup\x12S\n\x15\x66hrp_group_assignment\x18\x1a \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x13\x66hrpGroupAssignment\x12\x34\n\nfront_port\x18\x1b \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\tfrontPort\x12\x34\n\nike_policy\x18\x1c \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\tikePolicy\x12:\n\x0cike_proposal\x18\x1d \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x0bikeProposal\x12\x34\n\nip_address\x18\x1e \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\tipAddress\x12.\n\x08ip_range\x18\x1f \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x07ipRange\x12;\n\rip_sec_policy\x18 \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x0bipSecPolicy\x12>\n\x0eip_sec_profile\x18! \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x0cipSecProfile\x12\x41\n\x0fip_sec_proposal\x18\" \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\ripSecProposal\x12\x33\n\tinterface\x18# \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\tinterface\x12@\n\x0einventory_item\x18$ \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\rinventoryItem\x12M\n\x13inventory_item_role\x18% \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x11inventoryItemRole\x12\'\n\x05l2vpn\x18& \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x05l2vpn\x12I\n\x11l2vpn_termination\x18\' \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x10l2vpnTermination\x12\x30\n\x08location\x18( \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x08location\x12\x37\n\x0bmac_address\x18) \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\nmacAddress\x12<\n\x0cmanufacturer\x18* \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x0cmanufacturer\x12*\n\x06module\x18+ \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x12\x34\n\nmodule_bay\x18, \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\tmoduleBay\x12\x37\n\x0bmodule_type\x18- \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\nmoduleType\x12\x30\n\x08platform\x18. \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x08platform\x12\x34\n\npower_feed\x18/ \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\tpowerFeed\x12:\n\x0cpower_outlet\x18\x30 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x0bpowerOutlet\x12\x37\n\x0bpower_panel\x18\x31 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\npowerPanel\x12\x34\n\npower_port\x18\x32 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\tpowerPort\x12*\n\x06prefix\x18\x33 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x06prefix\x12\x30\n\x08provider\x18\x34 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x08provider\x12\x46\n\x10provider_account\x18\x35 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x12\x46\n\x10provider_network\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x0fproviderNetwork\x12!\n\x03rir\x18\x37 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x03rir\x12$\n\x04rack\x18\x38 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x04rack\x12\x46\n\x10rack_reservation\x18\x39 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x0frackReservation\x12\x31\n\track_role\x18: \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x08rackRole\x12\x31\n\track_type\x18; \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x08rackType\x12\x31\n\trear_port\x18< \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x08rearPort\x12*\n\x06region\x18= \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x06region\x12$\n\x04role\x18> \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x04role\x12:\n\x0croute_target\x18? \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x0brouteTarget\x12-\n\x07service\x18@ \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x07service\x12$\n\x04site\x18\x41 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x04site\x12\x34\n\nsite_group\x18\x42 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\tsiteGroup\x12!\n\x03tag\x18\x43 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x03tag\x12*\n\x06tenant\x18\x44 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x12:\n\x0ctenant_group\x18\x45 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x0btenantGroup\x12*\n\x06tunnel\x18\x46 \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x06tunnel\x12:\n\x0ctunnel_group\x18G \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x0btunnelGroup\x12L\n\x12tunnel_termination\x18H \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x11tunnelTermination\x12$\n\x04vlan\x18I \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x04vlan\x12\x34\n\nvlan_group\x18J \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\tvlanGroup\x12Y\n\x17vlan_translation_policy\x18K \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x15vlanTranslationPolicy\x12S\n\x15vlan_translation_rule\x18L \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x13vlanTranslationRule\x12:\n\x0cvm_interface\x18M \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x0bvmInterface\x12!\n\x03vrf\x18N \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x03vrf\x12\x43\n\x0fvirtual_chassis\x18O \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x0evirtualChassis\x12\x43\n\x0fvirtual_circuit\x18P \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x0evirtualCircuit\x12\x65\n\x1bvirtual_circuit_termination\x18Q \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x19virtualCircuitTermination\x12P\n\x14virtual_circuit_type\x18R \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x12virtualCircuitType\x12V\n\x16virtual_device_context\x18S \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x14virtualDeviceContext\x12:\n\x0cvirtual_disk\x18T \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x0bvirtualDisk\x12\x43\n\x0fvirtual_machine\x18U \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x0evirtualMachine\x12:\n\x0cwireless_lan\x18V \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x0bwirelessLan\x12J\n\x12wireless_lan_group\x18W \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x10wirelessLanGroup\x12=\n\rwireless_link\x18X \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x0cwirelessLink\x12:\n\x0c\x63ustom_field\x18Y \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x0b\x63ustomField\x12W\n\x17\x63ustom_field_choice_set\x18Z \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x14\x63ustomFieldChoiceSet\x12=\n\rjournal_entry\x18[ \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x0cjournalEntry\x12M\n\x13module_type_profile\x18\\ \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x11moduleTypeProfile\x12\x37\n\x0b\x63ustom_link\x18] \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\ncustomLink\x12\'\n\x05owner\x18^ \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x05owner\x12\x37\n\x0bowner_group\x18_ \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\nownerGroup\x12:\n\x0c\x63\x61\x62le_bundle\x18` \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x0b\x63\x61\x62leBundle\x12\x34\n\nrack_group\x18\x61 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\trackGroup\x12=\n\rscript_module\x18\x62 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x0cscriptModule\x12P\n\x14virtual_machine_type\x18\x63 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x12virtualMachineTypeB\x08\n\x06object\"\x9a\x04\n\x10\x43ustomFieldValue\x12-\n\x12multiple_selection\x18\x01 \x03(\tR\x11multipleSelection\x12O\n\x10multiple_objects\x18\x02 \x03(\x0b\x32$.diode.v1.CustomFieldObjectReferenceR\x0fmultipleObjects\x12\x14\n\x04text\x18\x03 \x01(\tH\x00R\x04text\x12\x1d\n\tlong_text\x18\x04 \x01(\tH\x00R\x08longText\x12\x1a\n\x07integer\x18\x05 \x01(\x03H\x00R\x07integer\x12\x1a\n\x07\x64\x65\x63imal\x18\x06 \x01(\x01H\x00R\x07\x64\x65\x63imal\x12\x1a\n\x07\x62oolean\x18\x07 \x01(\x08H\x00R\x07\x62oolean\x12\x30\n\x04\x64\x61te\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x04\x64\x61te\x12\x38\n\x08\x64\x61tetime\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x08\x64\x61tetime\x12\x12\n\x03url\x18\n \x01(\tH\x00R\x03url\x12\x14\n\x04json\x18\x0b \x01(\tH\x00R\x04json\x12\x1e\n\tselection\x18\x0c \x01(\tH\x00R\tselection\x12>\n\x06object\x18\r \x01(\x0b\x32$.diode.v1.CustomFieldObjectReferenceH\x00R\x06objectB\x07\n\x05value\"\xa8\x0f\n\x06\x44\x65vice\x12\x17\n\x04name\x18\x01 \x01(\tH\x00R\x04name\x88\x01\x01\x12\x35\n\x0b\x64\x65vice_type\x18\x02 \x01(\x0b\x32\x14.diode.v1.DeviceTypeR\ndeviceType\x12(\n\x04role\x18\x03 \x01(\x0b\x32\x14.diode.v1.DeviceRoleR\x04role\x12-\n\x06tenant\x18\x04 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12\x33\n\x08platform\x18\x05 \x01(\x0b\x32\x12.diode.v1.PlatformH\x02R\x08platform\x88\x01\x01\x12\x1b\n\x06serial\x18\x06 \x01(\tH\x03R\x06serial\x88\x01\x01\x12 \n\tasset_tag\x18\x07 \x01(\tH\x04R\x08\x61ssetTag\x88\x01\x01\x12\"\n\x04site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12\x33\n\x08location\x18\t \x01(\x0b\x32\x12.diode.v1.LocationH\x05R\x08location\x88\x01\x01\x12\'\n\x04rack\x18\n \x01(\x0b\x32\x0e.diode.v1.RackH\x06R\x04rack\x88\x01\x01\x12\x1f\n\x08position\x18\x0b \x01(\x01H\x07R\x08position\x88\x01\x01\x12+\n\x04\x66\x61\x63\x65\x18\x0c \x01(\tB\x12\xfa\x42\x0fr\rR\x05\x66rontR\x04rearH\x08R\x04\x66\x61\x63\x65\x88\x01\x01\x12\x1f\n\x08latitude\x18\r \x01(\x01H\tR\x08latitude\x88\x01\x01\x12!\n\tlongitude\x18\x0e \x01(\x01H\nR\tlongitude\x88\x01\x01\x12h\n\x06status\x18\x0f \x01(\tBK\xfa\x42HrFR\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x06\x66\x61iledR\tinventoryR\x07offlineR\x07plannedR\x06stagedH\x0bR\x06status\x88\x01\x01\x12\xad\x01\n\x07\x61irflow\x18\x10 \x01(\tB\x8d\x01\xfa\x42\x89\x01r\x86\x01R\rbottom-to-topR\rfront-to-rearR\rleft-to-rightR\x05mixedR\x07passiveR\rrear-to-frontR\x0crear-to-sideR\rright-to-leftR\x0cside-to-rearR\rtop-to-bottomH\x0cR\x07\x61irflow\x88\x01\x01\x12\x39\n\x0bprimary_ip4\x18\x11 \x01(\x0b\x32\x13.diode.v1.IPAddressH\rR\nprimaryIp4\x88\x01\x01\x12\x39\n\x0bprimary_ip6\x18\x12 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x0eR\nprimaryIp6\x88\x01\x01\x12/\n\x06oob_ip\x18\x13 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x0fR\x05oobIp\x88\x01\x01\x12\x30\n\x07\x63luster\x18\x14 \x01(\x0b\x32\x11.diode.v1.ClusterH\x10R\x07\x63luster\x88\x01\x01\x12\x46\n\x0fvirtual_chassis\x18\x15 \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x11R\x0evirtualChassis\x88\x01\x01\x12$\n\x0bvc_position\x18\x16 \x01(\x03H\x12R\nvcPosition\x88\x01\x01\x12$\n\x0bvc_priority\x18\x17 \x01(\x03H\x13R\nvcPriority\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x18 \x01(\tH\x14R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x19 \x01(\tH\x15R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x1a \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x1b \x03(\x0b\x32\".diode.v1.Device.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x1c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x1d \x01(\x0b\x32\x0f.diode.v1.OwnerH\x16R\x05owner\x88\x01\x01\x12\x39\n\x06\x63onfig\x18\x1e \x01(\x0b\x32\x16.diode.v1.DeviceConfigB\x04\x88\xb5\x18\x00H\x17R\x06\x63onfig\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_nameB\t\n\x07_tenantB\x0b\n\t_platformB\t\n\x07_serialB\x0c\n\n_asset_tagB\x0b\n\t_locationB\x07\n\x05_rackB\x0b\n\t_positionB\x07\n\x05_faceB\x0b\n\t_latitudeB\x0c\n\n_longitudeB\t\n\x07_statusB\n\n\x08_airflowB\x0e\n\x0c_primary_ip4B\x0e\n\x0c_primary_ip6B\t\n\x07_oob_ipB\n\n\x08_clusterB\x12\n\x10_virtual_chassisB\x0e\n\x0c_vc_positionB\x0e\n\x0c_vc_priorityB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_ownerB\t\n\x07_config\"\xe4\x04\n\tDeviceBay\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x19\n\x05label\x18\x03 \x01(\tH\x00R\x05label\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12@\n\x10installed_device\x18\x05 \x01(\x0b\x32\x10.diode.v1.DeviceH\x02R\x0finstalledDevice\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x07 \x03(\x0b\x32%.diode.v1.DeviceBay.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12\x1d\n\x07\x65nabled\x18\n \x01(\x08H\x04R\x07\x65nabled\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_labelB\x0e\n\x0c_descriptionB\x13\n\x11_installed_deviceB\x08\n\x06_ownerB\n\n\x08_enabled\"\xe4\x04\n\nDeviceRole\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12\x1c\n\x07vm_role\x18\x04 \x01(\x08H\x01R\x06vmRole\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x07 \x03(\x0b\x32&.diode.v1.DeviceRole.CustomFieldsEntryR\x0c\x63ustomFields\x12\x31\n\x06parent\x18\x08 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x03R\x06parent\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\n\n\x08_vm_roleB\x0e\n\x0c_descriptionB\t\n\x07_parentB\x0b\n\t_commentsB\x08\n\x06_owner\"\xed\t\n\nDeviceType\x12:\n\x0cmanufacturer\x18\x01 \x01(\x0b\x32\x16.diode.v1.ManufacturerR\x0cmanufacturer\x12\x42\n\x10\x64\x65\x66\x61ult_platform\x18\x02 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0f\x64\x65\x66\x61ultPlatform\x88\x01\x01\x12\x14\n\x05model\x18\x03 \x01(\tR\x05model\x12\x12\n\x04slug\x18\x04 \x01(\tR\x04slug\x12$\n\x0bpart_number\x18\x05 \x01(\tH\x01R\npartNumber\x88\x01\x01\x12\x1e\n\x08u_height\x18\x06 \x01(\x01H\x02R\x07uHeight\x88\x01\x01\x12=\n\x18\x65xclude_from_utilization\x18\x07 \x01(\x08H\x03R\x16\x65xcludeFromUtilization\x88\x01\x01\x12\'\n\ris_full_depth\x18\x08 \x01(\x08H\x04R\x0bisFullDepth\x88\x01\x01\x12@\n\x0esubdevice_role\x18\t \x01(\tB\x14\xfa\x42\x11r\x0fR\x05\x63hildR\x06parentH\x05R\rsubdeviceRole\x88\x01\x01\x12\xad\x01\n\x07\x61irflow\x18\n \x01(\tB\x8d\x01\xfa\x42\x89\x01r\x86\x01R\rbottom-to-topR\rfront-to-rearR\rleft-to-rightR\x05mixedR\x07passiveR\rrear-to-frontR\x0crear-to-sideR\rright-to-leftR\x0cside-to-rearR\rtop-to-bottomH\x06R\x07\x61irflow\x88\x01\x01\x12\x1b\n\x06weight\x18\x0b \x01(\x01H\x07R\x06weight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x0c \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x08R\nweightUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\r \x01(\tH\tR\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\nR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x10 \x03(\x0b\x32&.diode.v1.DeviceType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0bR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_default_platformB\x0e\n\x0c_part_numberB\x0b\n\t_u_heightB\x1b\n\x19_exclude_from_utilizationB\x10\n\x0e_is_full_depthB\x11\n\x0f_subdevice_roleB\n\n\x08_airflowB\t\n\x07_weightB\x0e\n\x0c_weight_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xb3\x05\n\tFHRPGroup\x12\x17\n\x04name\x18\x01 \x01(\tH\x00R\x04name\x88\x01\x01\x12S\n\x08protocol\x18\x02 \x01(\tB7\xfa\x42\x34r2R\x04\x63\x61rpR\tclusterxlR\x04glbpR\x04hsrpR\x05otherR\x05vrrp2R\x05vrrp3R\x08protocol\x12\x19\n\x08group_id\x18\x03 \x01(\x03R\x07groupId\x12\x37\n\tauth_type\x18\x04 \x01(\tB\x15\xfa\x42\x12r\x10R\x03md5R\tplaintextH\x01R\x08\x61uthType\x88\x01\x01\x12\x1e\n\x08\x61uth_key\x18\x05 \x01(\tH\x02R\x07\x61uthKey\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\t \x03(\x0b\x32%.diode.v1.FHRPGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_auth_typeB\x0b\n\t_auth_keyB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xfb=\n\x13\x46HRPGroupAssignment\x12)\n\x05group\x18\x01 \x01(\x0b\x32\x13.diode.v1.FHRPGroupR\x05group\x12\x34\n\rinterface_asn\x18\x02 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x0cinterfaceAsn\x12\x44\n\x13interface_asn_range\x18\x03 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x11interfaceAsnRange\x12\x46\n\x13interface_aggregate\x18\x04 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x12interfaceAggregate\x12:\n\x0finterface_cable\x18\x05 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x0einterfaceCable\x12G\n\x14interface_cable_path\x18\x06 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x12interfaceCablePath\x12`\n\x1binterface_cable_termination\x18\x07 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x19interfaceCableTermination\x12@\n\x11interface_circuit\x18\x08 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x10interfaceCircuit\x12P\n\x17interface_circuit_group\x18\t \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x15interfaceCircuitGroup\x12o\n\"interface_circuit_group_assignment\x18\n \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x1finterfaceCircuitGroupAssignment\x12\x62\n\x1dinterface_circuit_termination\x18\x0b \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x1binterfaceCircuitTermination\x12M\n\x16interface_circuit_type\x18\x0c \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x14interfaceCircuitType\x12@\n\x11interface_cluster\x18\r \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x10interfaceCluster\x12P\n\x17interface_cluster_group\x18\x0e \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x15interfaceClusterGroup\x12M\n\x16interface_cluster_type\x18\x0f \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x14interfaceClusterType\x12M\n\x16interface_console_port\x18\x10 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x14interfaceConsolePort\x12`\n\x1dinterface_console_server_port\x18\x11 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1ainterfaceConsoleServerPort\x12@\n\x11interface_contact\x18\x12 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x10interfaceContact\x12_\n\x1cinterface_contact_assignment\x18\x13 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x1ainterfaceContactAssignment\x12P\n\x17interface_contact_group\x18\x14 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x15interfaceContactGroup\x12M\n\x16interface_contact_role\x18\x15 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x14interfaceContactRole\x12=\n\x10interface_device\x18\x16 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x0finterfaceDevice\x12G\n\x14interface_device_bay\x18\x17 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x12interfaceDeviceBay\x12J\n\x15interface_device_role\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x13interfaceDeviceRole\x12J\n\x15interface_device_type\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x13interfaceDeviceType\x12G\n\x14interface_fhrp_group\x18\x1a \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x12interfaceFhrpGroup\x12\x66\n\x1finterface_fhrp_group_assignment\x18\x1b \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x1cinterfaceFhrpGroupAssignment\x12G\n\x14interface_front_port\x18\x1c \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x12interfaceFrontPort\x12G\n\x14interface_ike_policy\x18\x1d \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x12interfaceIkePolicy\x12M\n\x16interface_ike_proposal\x18\x1e \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x14interfaceIkeProposal\x12G\n\x14interface_ip_address\x18\x1f \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x12interfaceIpAddress\x12\x41\n\x12interface_ip_range\x18 \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x10interfaceIpRange\x12N\n\x17interface_ip_sec_policy\x18! \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x14interfaceIpSecPolicy\x12Q\n\x18interface_ip_sec_profile\x18\" \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x15interfaceIpSecProfile\x12T\n\x19interface_ip_sec_proposal\x18# \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x16interfaceIpSecProposal\x12\x46\n\x13interface_interface\x18$ \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x12interfaceInterface\x12S\n\x18interface_inventory_item\x18% \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x16interfaceInventoryItem\x12`\n\x1dinterface_inventory_item_role\x18& \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x1ainterfaceInventoryItemRole\x12:\n\x0finterface_l2vpn\x18\' \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x0einterfaceL2vpn\x12\\\n\x1binterface_l2vpn_termination\x18( \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x19interfaceL2vpnTermination\x12\x43\n\x12interface_location\x18) \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x11interfaceLocation\x12J\n\x15interface_mac_address\x18* \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x13interfaceMacAddress\x12O\n\x16interface_manufacturer\x18+ \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x15interfaceManufacturer\x12=\n\x10interface_module\x18, \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x0finterfaceModule\x12G\n\x14interface_module_bay\x18- \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x12interfaceModuleBay\x12J\n\x15interface_module_type\x18. \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x13interfaceModuleType\x12\x43\n\x12interface_platform\x18/ \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x11interfacePlatform\x12G\n\x14interface_power_feed\x18\x30 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x12interfacePowerFeed\x12M\n\x16interface_power_outlet\x18\x31 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x14interfacePowerOutlet\x12J\n\x15interface_power_panel\x18\x32 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x13interfacePowerPanel\x12G\n\x14interface_power_port\x18\x33 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x12interfacePowerPort\x12=\n\x10interface_prefix\x18\x34 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x0finterfacePrefix\x12\x43\n\x12interface_provider\x18\x35 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x11interfaceProvider\x12Y\n\x1ainterface_provider_account\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x18interfaceProviderAccount\x12Y\n\x1ainterface_provider_network\x18\x37 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x18interfaceProviderNetwork\x12\x34\n\rinterface_rir\x18\x38 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x0cinterfaceRir\x12\x37\n\x0einterface_rack\x18\x39 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\rinterfaceRack\x12Y\n\x1ainterface_rack_reservation\x18: \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x18interfaceRackReservation\x12\x44\n\x13interface_rack_role\x18; \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x11interfaceRackRole\x12\x44\n\x13interface_rack_type\x18< \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x11interfaceRackType\x12\x44\n\x13interface_rear_port\x18= \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x11interfaceRearPort\x12=\n\x10interface_region\x18> \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0finterfaceRegion\x12\x37\n\x0einterface_role\x18? \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\rinterfaceRole\x12M\n\x16interface_route_target\x18@ \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x14interfaceRouteTarget\x12@\n\x11interface_service\x18\x41 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x10interfaceService\x12\x37\n\x0einterface_site\x18\x42 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\rinterfaceSite\x12G\n\x14interface_site_group\x18\x43 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x12interfaceSiteGroup\x12\x34\n\rinterface_tag\x18\x44 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x0cinterfaceTag\x12=\n\x10interface_tenant\x18\x45 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x0finterfaceTenant\x12M\n\x16interface_tenant_group\x18\x46 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x14interfaceTenantGroup\x12=\n\x10interface_tunnel\x18G \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x0finterfaceTunnel\x12M\n\x16interface_tunnel_group\x18H \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x14interfaceTunnelGroup\x12_\n\x1cinterface_tunnel_termination\x18I \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1ainterfaceTunnelTermination\x12\x37\n\x0einterface_vlan\x18J \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\rinterfaceVlan\x12G\n\x14interface_vlan_group\x18K \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x12interfaceVlanGroup\x12l\n!interface_vlan_translation_policy\x18L \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x1einterfaceVlanTranslationPolicy\x12\x66\n\x1finterface_vlan_translation_rule\x18M \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x1cinterfaceVlanTranslationRule\x12M\n\x16interface_vm_interface\x18N \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x14interfaceVmInterface\x12\x34\n\rinterface_vrf\x18O \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x0cinterfaceVrf\x12V\n\x19interface_virtual_chassis\x18P \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x17interfaceVirtualChassis\x12V\n\x19interface_virtual_circuit\x18Q \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x17interfaceVirtualCircuit\x12x\n%interface_virtual_circuit_termination\x18R \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\"interfaceVirtualCircuitTermination\x12\x63\n\x1einterface_virtual_circuit_type\x18S \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x1binterfaceVirtualCircuitType\x12i\n interface_virtual_device_context\x18T \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1dinterfaceVirtualDeviceContext\x12M\n\x16interface_virtual_disk\x18U \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x14interfaceVirtualDisk\x12V\n\x19interface_virtual_machine\x18V \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x17interfaceVirtualMachine\x12M\n\x16interface_wireless_lan\x18W \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x14interfaceWirelessLan\x12]\n\x1cinterface_wireless_lan_group\x18X \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x19interfaceWirelessLanGroup\x12P\n\x17interface_wireless_link\x18Y \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x15interfaceWirelessLink\x12M\n\x16interface_custom_field\x18[ \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x14interfaceCustomField\x12j\n!interface_custom_field_choice_set\x18\\ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1dinterfaceCustomFieldChoiceSet\x12P\n\x17interface_journal_entry\x18] \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x15interfaceJournalEntry\x12`\n\x1dinterface_module_type_profile\x18^ \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x1ainterfaceModuleTypeProfile\x12J\n\x15interface_custom_link\x18_ \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x13interfaceCustomLink\x12:\n\x0finterface_owner\x18\x61 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x0einterfaceOwner\x12J\n\x15interface_owner_group\x18\x62 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x13interfaceOwnerGroup\x12M\n\x16interface_cable_bundle\x18\x63 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x14interfaceCableBundle\x12G\n\x14interface_rack_group\x18\x64 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x12interfaceRackGroup\x12P\n\x17interface_script_module\x18\x65 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x15interfaceScriptModule\x12\x63\n\x1einterface_virtual_machine_type\x18\x66 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x1binterfaceVirtualMachineType\x12\x1a\n\x08priority\x18Z \x01(\x03R\x08priority\x12\x39\n\x08metadata\x18` \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0b\n\tinterface\"\xfb\t\n\tFrontPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xc4\x03\n\x04type\x18\x05 \x01(\tB\xaf\x03\xfa\x42\xab\x03r\xa8\x03R\t110-punchR\x04\x34p2cR\x04\x34p4cR\x04\x36p2cR\x04\x36p4cR\x04\x36p6cR\x04\x38p2cR\x04\x38p4cR\x04\x38p6cR\x04\x38p8cR\x03\x62ncR\x02\x63sR\x01\x66R\x02\x66\x63R\x06\x66\x63-apcR\x05\x66\x63-pcR\x06\x66\x63-upcR\x04gg45R\x02lcR\x06lc-apcR\x05lc-pcR\x06lc-upcR\x03lshR\x07lsh-apcR\x06lsh-pcR\x07lsh-upcR\x03lx5R\x07lx5-apcR\x06lx5-pcR\x07lx5-upcR\x03mpoR\x05mrj21R\x04mtrjR\x01nR\x05otherR\x02scR\x06sc-apcR\x05sc-pcR\x06sc-upcR\x07sma-905R\x07sma-906R\x02snR\x06spliceR\x02stR\x07tera-1pR\x07tera-2pR\x07tera-4pR\x06urm-p2R\x06urm-p4R\x06urm-p8R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bR\x04type\x12\x19\n\x05\x63olor\x18\x06 \x01(\tH\x02R\x05\x63olor\x88\x01\x01\x12\x33\n\trear_port\x18\x07 \x01(\x0b\x32\x12.diode.v1.RearPortB\x02\x18\x01R\x08rearPort\x12\x35\n\x12rear_port_position\x18\x08 \x01(\x03\x42\x02\x18\x01H\x03R\x10rearPortPosition\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\t \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\n \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\x0b \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x0c \x03(\x0b\x32%.diode.v1.FrontPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12!\n\tpositions\x18\x0e \x01(\x03H\x06R\tpositions\x88\x01\x01\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\x07R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x08\n\x06_colorB\x15\n\x13_rear_port_positionB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x0c\n\n_positionsB\x08\n\x06_owner\"\x9e\x38\n\rGenericObject\x12.\n\nobject_asn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\tobjectAsn\x12>\n\x10object_asn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x0eobjectAsnRange\x12@\n\x10object_aggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x0fobjectAggregate\x12\x34\n\x0cobject_cable\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x0bobjectCable\x12\x41\n\x11object_cable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x0fobjectCablePath\x12Z\n\x18object_cable_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x16objectCableTermination\x12:\n\x0eobject_circuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\robjectCircuit\x12J\n\x14object_circuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x12objectCircuitGroup\x12i\n\x1fobject_circuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x1cobjectCircuitGroupAssignment\x12\\\n\x1aobject_circuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x18objectCircuitTermination\x12G\n\x13object_circuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x11objectCircuitType\x12:\n\x0eobject_cluster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\robjectCluster\x12J\n\x14object_cluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x12objectClusterGroup\x12G\n\x13object_cluster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x11objectClusterType\x12G\n\x13object_console_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x11objectConsolePort\x12Z\n\x1aobject_console_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x17objectConsoleServerPort\x12:\n\x0eobject_contact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\robjectContact\x12Y\n\x19object_contact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x17objectContactAssignment\x12J\n\x14object_contact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x12objectContactGroup\x12G\n\x13object_contact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x11objectContactRole\x12\x37\n\robject_device\x18\x15 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x0cobjectDevice\x12\x41\n\x11object_device_bay\x18\x16 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x0fobjectDeviceBay\x12\x44\n\x12object_device_role\x18\x17 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x10objectDeviceRole\x12\x44\n\x12object_device_type\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x10objectDeviceType\x12\x41\n\x11object_fhrp_group\x18\x19 \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x0fobjectFhrpGroup\x12`\n\x1cobject_fhrp_group_assignment\x18\x1a \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x19objectFhrpGroupAssignment\x12\x41\n\x11object_front_port\x18\x1b \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x0fobjectFrontPort\x12\x41\n\x11object_ike_policy\x18\x1c \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x0fobjectIkePolicy\x12G\n\x13object_ike_proposal\x18\x1d \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x11objectIkeProposal\x12\x41\n\x11object_ip_address\x18\x1e \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x0fobjectIpAddress\x12;\n\x0fobject_ip_range\x18\x1f \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\robjectIpRange\x12H\n\x14object_ip_sec_policy\x18 \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x11objectIpSecPolicy\x12K\n\x15object_ip_sec_profile\x18! \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x12objectIpSecProfile\x12N\n\x16object_ip_sec_proposal\x18\" \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x13objectIpSecProposal\x12@\n\x10object_interface\x18# \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x0fobjectInterface\x12M\n\x15object_inventory_item\x18$ \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x13objectInventoryItem\x12Z\n\x1aobject_inventory_item_role\x18% \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x17objectInventoryItemRole\x12\x34\n\x0cobject_l2vpn\x18& \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x0bobjectL2vpn\x12V\n\x18object_l2vpn_termination\x18\' \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x16objectL2vpnTermination\x12=\n\x0fobject_location\x18( \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x0eobjectLocation\x12\x44\n\x12object_mac_address\x18) \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x10objectMacAddress\x12I\n\x13object_manufacturer\x18* \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x12objectManufacturer\x12\x37\n\robject_module\x18+ \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x0cobjectModule\x12\x41\n\x11object_module_bay\x18, \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x0fobjectModuleBay\x12\x44\n\x12object_module_type\x18- \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x10objectModuleType\x12=\n\x0fobject_platform\x18. \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0eobjectPlatform\x12\x41\n\x11object_power_feed\x18/ \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x0fobjectPowerFeed\x12G\n\x13object_power_outlet\x18\x30 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x11objectPowerOutlet\x12\x44\n\x12object_power_panel\x18\x31 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x10objectPowerPanel\x12\x41\n\x11object_power_port\x18\x32 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x0fobjectPowerPort\x12\x37\n\robject_prefix\x18\x33 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x0cobjectPrefix\x12=\n\x0fobject_provider\x18\x34 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x0eobjectProvider\x12S\n\x17object_provider_account\x18\x35 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x15objectProviderAccount\x12S\n\x17object_provider_network\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x15objectProviderNetwork\x12.\n\nobject_rir\x18\x37 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\tobjectRir\x12\x31\n\x0bobject_rack\x18\x38 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\nobjectRack\x12S\n\x17object_rack_reservation\x18\x39 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x15objectRackReservation\x12>\n\x10object_rack_role\x18: \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x0eobjectRackRole\x12>\n\x10object_rack_type\x18; \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x0eobjectRackType\x12>\n\x10object_rear_port\x18< \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x0eobjectRearPort\x12\x37\n\robject_region\x18= \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0cobjectRegion\x12\x31\n\x0bobject_role\x18> \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\nobjectRole\x12G\n\x13object_route_target\x18? \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x11objectRouteTarget\x12:\n\x0eobject_service\x18@ \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\robjectService\x12\x31\n\x0bobject_site\x18\x41 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\nobjectSite\x12\x41\n\x11object_site_group\x18\x42 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0fobjectSiteGroup\x12.\n\nobject_tag\x18\x43 \x01(\x0b\x32\r.diode.v1.TagH\x00R\tobjectTag\x12\x37\n\robject_tenant\x18\x44 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x0cobjectTenant\x12G\n\x13object_tenant_group\x18\x45 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x11objectTenantGroup\x12\x37\n\robject_tunnel\x18\x46 \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x0cobjectTunnel\x12G\n\x13object_tunnel_group\x18G \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x11objectTunnelGroup\x12Y\n\x19object_tunnel_termination\x18H \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x17objectTunnelTermination\x12\x31\n\x0bobject_vlan\x18I \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\nobjectVlan\x12\x41\n\x11object_vlan_group\x18J \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x0fobjectVlanGroup\x12\x66\n\x1eobject_vlan_translation_policy\x18K \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x1bobjectVlanTranslationPolicy\x12`\n\x1cobject_vlan_translation_rule\x18L \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x19objectVlanTranslationRule\x12G\n\x13object_vm_interface\x18M \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x11objectVmInterface\x12.\n\nobject_vrf\x18N \x01(\x0b\x32\r.diode.v1.VRFH\x00R\tobjectVrf\x12P\n\x16object_virtual_chassis\x18O \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x14objectVirtualChassis\x12P\n\x16object_virtual_circuit\x18P \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x14objectVirtualCircuit\x12r\n\"object_virtual_circuit_termination\x18Q \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x1fobjectVirtualCircuitTermination\x12]\n\x1bobject_virtual_circuit_type\x18R \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x18objectVirtualCircuitType\x12\x63\n\x1dobject_virtual_device_context\x18S \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1aobjectVirtualDeviceContext\x12G\n\x13object_virtual_disk\x18T \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x11objectVirtualDisk\x12P\n\x16object_virtual_machine\x18U \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x14objectVirtualMachine\x12G\n\x13object_wireless_lan\x18V \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x11objectWirelessLan\x12W\n\x19object_wireless_lan_group\x18W \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x16objectWirelessLanGroup\x12J\n\x14object_wireless_link\x18X \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x12objectWirelessLink\x12G\n\x13object_custom_field\x18Y \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x11objectCustomField\x12\x64\n\x1eobject_custom_field_choice_set\x18Z \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1aobjectCustomFieldChoiceSet\x12J\n\x14object_journal_entry\x18[ \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x12objectJournalEntry\x12Z\n\x1aobject_module_type_profile\x18\\ \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x17objectModuleTypeProfile\x12\x44\n\x12object_custom_link\x18] \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x10objectCustomLink\x12\x34\n\x0cobject_owner\x18^ \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x0bobjectOwner\x12\x44\n\x12object_owner_group\x18_ \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x10objectOwnerGroup\x12G\n\x13object_cable_bundle\x18` \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x11objectCableBundle\x12\x41\n\x11object_rack_group\x18\x61 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x0fobjectRackGroup\x12J\n\x14object_script_module\x18\x62 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x12objectScriptModule\x12]\n\x1bobject_virtual_machine_type\x18\x63 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x18objectVirtualMachineTypeB\x08\n\x06object\"\x92\x05\n\tIKEPolicy\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12#\n\x07version\x18\x03 \x01(\x03\x42\t\xfa\x42\x06\"\x04\x30\x01\x30\x02R\x07version\x12\x30\n\x04mode\x18\x04 \x01(\tB\x17\xfa\x42\x14r\x12R\naggressiveR\x04mainH\x01R\x04mode\x88\x01\x01\x12(\n\rpreshared_key\x18\x05 \x01(\tH\x02R\x0cpresharedKey\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x06 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x07 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x08 \x03(\x0b\x32%.diode.v1.IKEPolicy.CustomFieldsEntryR\x0c\x63ustomFields\x12\x33\n\tproposals\x18\t \x03(\x0b\x32\x15.diode.v1.IKEProposalR\tproposals\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x07\n\x05_modeB\x10\n\x0e_preshared_keyB\x0b\n\t_commentsB\x08\n\x06_owner\"\xff\x07\n\x0bIKEProposal\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12x\n\x15\x61uthentication_method\x18\x03 \x01(\tBC\xfa\x42@r>R\x0c\x63\x65rtificatesR\x0e\x64sa-signaturesR\x0epreshared-keysR\x0ersa-signaturesR\x14\x61uthenticationMethod\x12\x99\x01\n\x14\x65ncryption_algorithm\x18\x04 \x01(\tBf\xfa\x42\x63raR\x08\x33\x64\x65s-cbcR\x0b\x61\x65s-128-cbcR\x0b\x61\x65s-128-gcmR\x0b\x61\x65s-192-cbcR\x0b\x61\x65s-192-gcmR\x0b\x61\x65s-256-cbcR\x0b\x61\x65s-256-gcmR\x07\x64\x65s-cbcR\x13\x65ncryptionAlgorithm\x12\x81\x01\n\x18\x61uthentication_algorithm\x18\x05 \x01(\tBA\xfa\x42>rr \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x1d\x61ssignedObjectProviderAccount\x12\x64\n assigned_object_provider_network\x18? \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1d\x61ssignedObjectProviderNetwork\x12?\n\x13\x61ssigned_object_rir\x18@ \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x11\x61ssignedObjectRir\x12\x42\n\x14\x61ssigned_object_rack\x18\x41 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x12\x61ssignedObjectRack\x12\x64\n assigned_object_rack_reservation\x18\x42 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x1d\x61ssignedObjectRackReservation\x12O\n\x19\x61ssigned_object_rack_role\x18\x43 \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x16\x61ssignedObjectRackRole\x12O\n\x19\x61ssigned_object_rack_type\x18\x44 \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x16\x61ssignedObjectRackType\x12O\n\x19\x61ssigned_object_rear_port\x18\x45 \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x16\x61ssignedObjectRearPort\x12H\n\x16\x61ssigned_object_region\x18\x46 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x14\x61ssignedObjectRegion\x12\x42\n\x14\x61ssigned_object_role\x18G \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x12\x61ssignedObjectRole\x12X\n\x1c\x61ssigned_object_route_target\x18H \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x19\x61ssignedObjectRouteTarget\x12K\n\x17\x61ssigned_object_service\x18I \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x15\x61ssignedObjectService\x12\x42\n\x14\x61ssigned_object_site\x18J \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x12\x61ssignedObjectSite\x12R\n\x1a\x61ssigned_object_site_group\x18K \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x17\x61ssignedObjectSiteGroup\x12?\n\x13\x61ssigned_object_tag\x18L \x01(\x0b\x32\r.diode.v1.TagH\x00R\x11\x61ssignedObjectTag\x12H\n\x16\x61ssigned_object_tenant\x18M \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x14\x61ssignedObjectTenant\x12X\n\x1c\x61ssigned_object_tenant_group\x18N \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x19\x61ssignedObjectTenantGroup\x12H\n\x16\x61ssigned_object_tunnel\x18O \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x14\x61ssignedObjectTunnel\x12X\n\x1c\x61ssigned_object_tunnel_group\x18P \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x19\x61ssignedObjectTunnelGroup\x12j\n\"assigned_object_tunnel_termination\x18Q \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1f\x61ssignedObjectTunnelTermination\x12R\n\x1a\x61ssigned_object_vlan_group\x18R \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x17\x61ssignedObjectVlanGroup\x12w\n\'assigned_object_vlan_translation_policy\x18S \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R#assignedObjectVlanTranslationPolicy\x12q\n%assigned_object_vlan_translation_rule\x18T \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R!assignedObjectVlanTranslationRule\x12?\n\x13\x61ssigned_object_vrf\x18U \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x11\x61ssignedObjectVrf\x12\x61\n\x1f\x61ssigned_object_virtual_chassis\x18V \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x1c\x61ssignedObjectVirtualChassis\x12\x61\n\x1f\x61ssigned_object_virtual_circuit\x18W \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x1c\x61ssignedObjectVirtualCircuit\x12\x83\x01\n+assigned_object_virtual_circuit_termination\x18X \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\'assignedObjectVirtualCircuitTermination\x12n\n$assigned_object_virtual_circuit_type\x18Y \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R assignedObjectVirtualCircuitType\x12t\n&assigned_object_virtual_device_context\x18Z \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\"assignedObjectVirtualDeviceContext\x12X\n\x1c\x61ssigned_object_virtual_disk\x18[ \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x19\x61ssignedObjectVirtualDisk\x12\x61\n\x1f\x61ssigned_object_virtual_machine\x18\\ \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x1c\x61ssignedObjectVirtualMachine\x12X\n\x1c\x61ssigned_object_wireless_lan\x18] \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x19\x61ssignedObjectWirelessLan\x12h\n\"assigned_object_wireless_lan_group\x18^ \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x1e\x61ssignedObjectWirelessLanGroup\x12[\n\x1d\x61ssigned_object_wireless_link\x18_ \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x1a\x61ssignedObjectWirelessLink\x12U\n\x1b\x61ssigned_object_custom_link\x18` \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x18\x61ssignedObjectCustomLink\x12\x45\n\x15\x61ssigned_object_owner\x18\x62 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x13\x61ssignedObjectOwner\x12U\n\x1b\x61ssigned_object_owner_group\x18\x63 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x18\x61ssignedObjectOwnerGroup\x12X\n\x1c\x61ssigned_object_cable_bundle\x18\x64 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x19\x61ssignedObjectCableBundle\x12R\n\x1a\x61ssigned_object_rack_group\x18\x65 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x17\x61ssignedObjectRackGroup\x12[\n\x1d\x61ssigned_object_script_module\x18\x66 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x1a\x61ssignedObjectScriptModule\x12n\n$assigned_object_virtual_machine_type\x18g \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R assignedObjectVirtualMachineType\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12Q\n\rcustom_fields\x18\x06 \x03(\x0b\x32,.diode.v1.L2VPNTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x61 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x11\n\x0f\x61ssigned_object\"\xfe\x05\n\x08Location\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\"\n\x04site\x18\x03 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12/\n\x06parent\x18\x04 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x06parent\x88\x01\x01\x12V\n\x06status\x18\x05 \x01(\tB9\xfa\x42\x36r4R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x07plannedR\x07retiredR\x07stagingH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x1f\n\x08\x66\x61\x63ility\x18\x07 \x01(\tH\x03R\x08\x66\x61\x63ility\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\n \x03(\x0b\x32$.diode.v1.Location.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\t\n\x07_statusB\t\n\x07_tenantB\x0b\n\t_facilityB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x90\x05\n\nMACAddress\x12\x1f\n\x0bmac_address\x18\x01 \x01(\tR\nmacAddress\x12Q\n\x19\x61ssigned_object_interface\x18\x02 \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x17\x61ssignedObjectInterface\x12X\n\x1c\x61ssigned_object_vm_interface\x18\x03 \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x19\x61ssignedObjectVmInterface\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x07 \x03(\x0b\x32&.diode.v1.MACAddress.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x11\n\x0f\x61ssigned_objectB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xdb\x03\n\x0cManufacturer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x05 \x03(\x0b\x32(.diode.v1.Manufacturer.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\x94\x07\n\x06Module\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12\x32\n\nmodule_bay\x18\x02 \x01(\x0b\x32\x13.diode.v1.ModuleBayR\tmoduleBay\x12\x35\n\x0bmodule_type\x18\x03 \x01(\x0b\x32\x14.diode.v1.ModuleTypeR\nmoduleType\x12]\n\x06status\x18\x04 \x01(\tB@\xfa\x42=r;R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x06\x66\x61iledR\x07offlineR\x07plannedR\x06stagedH\x00R\x06status\x88\x01\x01\x12\x1b\n\x06serial\x18\x05 \x01(\tH\x01R\x06serial\x88\x01\x01\x12 \n\tasset_tag\x18\x06 \x01(\tH\x02R\x08\x61ssetTag\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\n \x03(\x0b\x32\".diode.v1.Module.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x12\x36\n\x14replicate_components\x18\r \x01(\x08H\x06R\x13replicateComponents\x88\x01\x01\x12.\n\x10\x61\x64opt_components\x18\x0e \x01(\x08H\x07R\x0f\x61\x64optComponents\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_statusB\t\n\x07_serialB\x0c\n\n_asset_tagB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_ownerB\x17\n\x15_replicate_componentsB\x13\n\x11_adopt_components\"\xcc\x05\n\tModuleBay\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12@\n\x10installed_module\x18\x04 \x01(\x0b\x32\x10.diode.v1.ModuleH\x01R\x0finstalledModule\x88\x01\x01\x12\x19\n\x05label\x18\x05 \x01(\tH\x02R\x05label\x88\x01\x01\x12\x1f\n\x08position\x18\x06 \x01(\tH\x03R\x08position\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\t \x03(\x0b\x32%.diode.v1.ModuleBay.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x12\x1d\n\x07\x65nabled\x18\x0c \x01(\x08H\x06R\x07\x65nabled\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x13\n\x11_installed_moduleB\x08\n\x06_labelB\x0b\n\t_positionB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\n\n\x08_enabled\"\xac\x07\n\nModuleType\x12:\n\x0cmanufacturer\x18\x01 \x01(\x0b\x32\x16.diode.v1.ManufacturerR\x0cmanufacturer\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model\x12$\n\x0bpart_number\x18\x03 \x01(\tH\x00R\npartNumber\x88\x01\x01\x12w\n\x07\x61irflow\x18\x04 \x01(\tBX\xfa\x42UrSR\rfront-to-rearR\rleft-to-rightR\x07passiveR\rrear-to-frontR\rright-to-leftR\x0cside-to-rearH\x01R\x07\x61irflow\x88\x01\x01\x12\x1b\n\x06weight\x18\x05 \x01(\x01H\x02R\x06weight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x06 \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x03R\nweightUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\n \x03(\x0b\x32&.diode.v1.ModuleType.CustomFieldsEntryR\x0c\x63ustomFields\x12:\n\x07profile\x18\x0b \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x06R\x07profile\x88\x01\x01\x12#\n\nattributes\x18\x0c \x01(\tH\x07R\nattributes\x88\x01\x01\x12\x39\n\x08metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0e \x01(\x0b\x32\x0f.diode.v1.OwnerH\x08R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_part_numberB\n\n\x08_airflowB\t\n\x07_weightB\x0e\n\x0c_weight_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\n\n\x08_profileB\r\n\x0b_attributesB\x08\n\x06_owner\"\xe1\x04\n\x08Platform\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12?\n\x0cmanufacturer\x18\x03 \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x0cmanufacturer\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x06 \x03(\x0b\x32$.diode.v1.Platform.CustomFieldsEntryR\x0c\x63ustomFields\x12/\n\x06parent\x18\x07 \x01(\x0b\x32\x12.diode.v1.PlatformH\x02R\x06parent\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0f\n\r_manufacturerB\x0e\n\x0c_descriptionB\t\n\x07_parentB\x0b\n\t_commentsB\x08\n\x06_owner\"\xca\x08\n\tPowerFeed\x12\x35\n\x0bpower_panel\x18\x01 \x01(\x0b\x32\x14.diode.v1.PowerPanelR\npowerPanel\x12\'\n\x04rack\x18\x02 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x04rack\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x44\n\x06status\x18\x04 \x01(\tB\'\xfa\x42$r\"R\x06\x61\x63tiveR\x06\x66\x61iledR\x07offlineR\x07plannedH\x01R\x06status\x88\x01\x01\x12\x32\n\x04type\x18\x05 \x01(\tB\x19\xfa\x42\x16r\x14R\x07primaryR\tredundantH\x02R\x04type\x88\x01\x01\x12*\n\x06supply\x18\x06 \x01(\tB\r\xfa\x42\nr\x08R\x02\x61\x63R\x02\x64\x63H\x03R\x06supply\x88\x01\x01\x12;\n\x05phase\x18\x07 \x01(\tB \xfa\x42\x1dr\x1bR\x0csingle-phaseR\x0bthree-phaseH\x04R\x05phase\x88\x01\x01\x12\x1d\n\x07voltage\x18\x08 \x01(\x03H\x05R\x07voltage\x88\x01\x01\x12\x1f\n\x08\x61mperage\x18\t \x01(\x03H\x06R\x08\x61mperage\x88\x01\x01\x12,\n\x0fmax_utilization\x18\n \x01(\x03H\x07R\x0emaxUtilization\x88\x01\x01\x12*\n\x0emark_connected\x18\x0b \x01(\x08H\x08R\rmarkConnected\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0c \x01(\tH\tR\x0b\x64\x65scription\x88\x01\x01\x12-\n\x06tenant\x18\r \x01(\x0b\x32\x10.diode.v1.TenantH\nR\x06tenant\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\x0bR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x10 \x03(\x0b\x32%.diode.v1.PowerFeed.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0cR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_rackB\t\n\x07_statusB\x07\n\x05_typeB\t\n\x07_supplyB\x08\n\x06_phaseB\n\n\x08_voltageB\x0b\n\t_amperageB\x12\n\x10_max_utilizationB\x11\n\x0f_mark_connectedB\x0e\n\x0c_descriptionB\t\n\x07_tenantB\x0b\n\t_commentsB\x08\n\x06_owner\"\xde\x11\n\x0bPowerOutlet\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xff\n\n\x04type\x18\x05 \x01(\tB\xe5\n\xfa\x42\xe1\nr\xde\nR\x07\x43S6360CR\x07\x43S6364CR\x07\x43S8164CR\x07\x43S8264CR\x07\x43S8364CR\x07\x43S8464CR\x0b\x64\x63-terminalR\teaton-c39R\thardwiredR\x07hdot-cxR\x11iec-60309-2p-e-4hR\x11iec-60309-2p-e-6hR\x11iec-60309-2p-e-9hR\x11iec-60309-3p-e-4hR\x11iec-60309-3p-e-6hR\x11iec-60309-3p-e-9hR\x13iec-60309-3p-n-e-4hR\x13iec-60309-3p-n-e-6hR\x13iec-60309-3p-n-e-9hR\x12iec-60309-p-n-e-4hR\x12iec-60309-p-n-e-6hR\x12iec-60309-p-n-e-9hR\riec-60320-c13R\riec-60320-c15R\riec-60320-c17R\riec-60320-c19R\riec-60320-c21R\x0ciec-60320-c5R\x0ciec-60320-c7R\x0biec-60906-1R\x05ita-eR\x05ita-fR\x05ita-gR\x05ita-hR\x05ita-iR\x05ita-jR\x05ita-kR\x05ita-lR\x05ita-mR\x11ita-multistandardR\x05ita-nR\x05ita-oR\x13molex-micro-fit-1x2R\x13molex-micro-fit-2x2R\x13molex-micro-fit-2x3R\x13molex-micro-fit-2x4R\rnbr-14136-10aR\rnbr-14136-20aR\nnema-1-15rR\x0bnema-10-30rR\x0bnema-10-50rR\x0bnema-14-20rR\x0bnema-14-30rR\x0bnema-14-50rR\x0bnema-14-60rR\x0bnema-15-15rR\x0bnema-15-20rR\x0bnema-15-30rR\x0bnema-15-50rR\x0bnema-15-60rR\nnema-5-15rR\nnema-5-20rR\nnema-5-30rR\nnema-5-50rR\nnema-6-15rR\nnema-6-20rR\nnema-6-30rR\nnema-6-50rR\x0bnema-l1-15rR\x0cnema-l10-30rR\x0cnema-l14-20rR\x0cnema-l14-30rR\x0cnema-l14-50rR\x0cnema-l14-60rR\x0cnema-l15-20rR\x0cnema-l15-30rR\x0cnema-l15-50rR\x0cnema-l15-60rR\x0cnema-l21-20rR\x0cnema-l21-30rR\x0cnema-l22-20rR\x0cnema-l22-30rR\x0bnema-l5-15rR\x0bnema-l5-20rR\x0bnema-l5-30rR\x0bnema-l5-50rR\x0bnema-l6-15rR\x0bnema-l6-20rR\x0bnema-l6-30rR\x0bnema-l6-50rR\x14neutrik-powercon-20aR\x14neutrik-powercon-32aR\x16neutrik-powercon-true1R\x1aneutrik-powercon-true1-topR\x05otherR\nsaf-d-gridR\x13ubiquiti-smartpowerR\x05usb-aR\x05usb-cR\x0busb-micro-bH\x02R\x04type\x88\x01\x01\x12\x19\n\x05\x63olor\x18\x06 \x01(\tH\x03R\x05\x63olor\x88\x01\x01\x12\x37\n\npower_port\x18\x07 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x04R\tpowerPort\x88\x01\x01\x12.\n\x08\x66\x65\x65\x64_leg\x18\x08 \x01(\tB\x0e\xfa\x42\x0br\tR\x01\x41R\x01\x42R\x01\x43H\x05R\x07\x66\x65\x65\x64Leg\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\t \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\n \x01(\x08H\x07R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\x0b \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x0c \x03(\x0b\x32\'.diode.v1.PowerOutlet.CustomFieldsEntryR\x0c\x63ustomFields\x12=\n\x06status\x18\r \x01(\tB \xfa\x42\x1dr\x1bR\x08\x64isabledR\x07\x65nabledR\x06\x66\x61ultyH\x08R\x06status\x88\x01\x01\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\tR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x08\n\x06_colorB\r\n\x0b_power_portB\x0b\n\t_feed_legB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\t\n\x07_statusB\x08\n\x06_owner\"\xa9\x04\n\nPowerPanel\x12\"\n\x04site\x18\x01 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12\x33\n\x08location\x18\x02 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x08location\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x07 \x03(\x0b\x32&.diode.v1.PowerPanel.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0b\n\t_locationB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x96\x11\n\tPowerPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xb7\x0b\n\x04type\x18\x05 \x01(\tB\x9d\x0b\xfa\x42\x99\x0br\x96\x0bR\x07\x63s6361cR\x07\x63s6365cR\x07\x63s8165cR\x07\x63s8265cR\x07\x63s8365cR\x07\x63s8465cR\x0b\x64\x63-terminalR\thardwiredR\x11iec-60309-2p-e-4hR\x11iec-60309-2p-e-6hR\x11iec-60309-2p-e-9hR\x11iec-60309-3p-e-4hR\x11iec-60309-3p-e-6hR\x11iec-60309-3p-e-9hR\x13iec-60309-3p-n-e-4hR\x13iec-60309-3p-n-e-6hR\x13iec-60309-3p-n-e-9hR\x12iec-60309-p-n-e-4hR\x12iec-60309-p-n-e-6hR\x12iec-60309-p-n-e-9hR\riec-60320-c14R\riec-60320-c16R\riec-60320-c18R\riec-60320-c20R\riec-60320-c22R\x0ciec-60320-c6R\x0ciec-60320-c8R\x0biec-60906-1R\x05ita-cR\x05ita-eR\x06ita-efR\x05ita-fR\x05ita-gR\x05ita-hR\x05ita-iR\x05ita-jR\x05ita-kR\x05ita-lR\x05ita-mR\x05ita-nR\x05ita-oR\x13molex-micro-fit-1x2R\x13molex-micro-fit-2x2R\x13molex-micro-fit-2x3R\x13molex-micro-fit-2x4R\rnbr-14136-10aR\rnbr-14136-20aR\nnema-1-15pR\x0bnema-10-30pR\x0bnema-10-50pR\x0bnema-14-20pR\x0bnema-14-30pR\x0bnema-14-50pR\x0bnema-14-60pR\x0bnema-15-15pR\x0bnema-15-20pR\x0bnema-15-30pR\x0bnema-15-50pR\x0bnema-15-60pR\nnema-5-15pR\nnema-5-20pR\nnema-5-30pR\nnema-5-50pR\nnema-6-15pR\nnema-6-20pR\nnema-6-30pR\nnema-6-50pR\x0bnema-l1-15pR\x0cnema-l10-30pR\x0cnema-l14-20pR\x0cnema-l14-30pR\x0cnema-l14-50pR\x0cnema-l14-60pR\x0cnema-l15-20pR\x0cnema-l15-30pR\x0cnema-l15-50pR\x0cnema-l15-60pR\x0cnema-l21-20pR\x0cnema-l21-30pR\x0cnema-l22-20pR\x0cnema-l22-30pR\x0bnema-l5-15pR\x0bnema-l5-20pR\x0bnema-l5-30pR\x0bnema-l5-50pR\x0bnema-l6-15pR\x0bnema-l6-20pR\x0bnema-l6-30pR\x0bnema-l6-50pR\x13neutrik-powercon-20R\x13neutrik-powercon-32R\x16neutrik-powercon-true1R\x1aneutrik-powercon-true1-topR\x05otherR\nsaf-d-gridR\x13ubiquiti-smartpowerR\x07usb-3-bR\rusb-3-micro-bR\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bH\x02R\x04type\x88\x01\x01\x12&\n\x0cmaximum_draw\x18\x06 \x01(\x03H\x03R\x0bmaximumDraw\x88\x01\x01\x12*\n\x0e\x61llocated_draw\x18\x07 \x01(\x03H\x04R\rallocatedDraw\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\t \x01(\x08H\x06R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x0b \x03(\x0b\x32%.diode.v1.PowerPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x07R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x0f\n\r_maximum_drawB\x11\n\x0f_allocated_drawB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\xb8\x08\n\x06Prefix\x12\x16\n\x06prefix\x18\x01 \x01(\tR\x06prefix\x12$\n\x03vrf\x18\x02 \x01(\x0b\x32\r.diode.v1.VRFH\x01R\x03vrf\x88\x01\x01\x12;\n\x0escope_location\x18\x03 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12\x35\n\x0cscope_region\x18\x04 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x05 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\x06 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12-\n\x06tenant\x18\x07 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\'\n\x04vlan\x18\x08 \x01(\x0b\x32\x0e.diode.v1.VLANH\x03R\x04vlan\x88\x01\x01\x12K\n\x06status\x18\t \x01(\tB.\xfa\x42+r)R\x06\x61\x63tiveR\tcontainerR\ndeprecatedR\x08reservedH\x04R\x06status\x88\x01\x01\x12\'\n\x04role\x18\n \x01(\x0b\x32\x0e.diode.v1.RoleH\x05R\x04role\x88\x01\x01\x12\x1c\n\x07is_pool\x18\x0b \x01(\x08H\x06R\x06isPool\x88\x01\x01\x12(\n\rmark_utilized\x18\x0c \x01(\x08H\x07R\x0cmarkUtilized\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\r \x01(\tH\x08R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x10 \x03(\x0b\x32\".diode.v1.Prefix.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x06\n\x04_vrfB\t\n\x07_tenantB\x07\n\x05_vlanB\t\n\x07_statusB\x07\n\x05_roleB\n\n\x08_is_poolB\x10\n\x0e_mark_utilizedB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xad\x04\n\x08Provider\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x01R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x06 \x03(\x0b\x32$.diode.v1.Provider.CustomFieldsEntryR\x0c\x63ustomFields\x12\x35\n\x08\x61\x63\x63ounts\x18\x07 \x03(\x0b\x32\x19.diode.v1.ProviderAccountR\x08\x61\x63\x63ounts\x12!\n\x04\x61sns\x18\x08 \x03(\x0b\x32\r.diode.v1.ASNR\x04\x61sns\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xa5\x04\n\x0fProviderAccount\x12.\n\x08provider\x18\x01 \x01(\x0b\x32\x12.diode.v1.ProviderR\x08provider\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12P\n\rcustom_fields\x18\x07 \x03(\x0b\x32+.diode.v1.ProviderAccount.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xb0\x04\n\x0fProviderNetwork\x12.\n\x08provider\x18\x01 \x01(\x0b\x32\x12.diode.v1.ProviderR\x08provider\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\"\n\nservice_id\x18\x03 \x01(\tH\x00R\tserviceId\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12P\n\rcustom_fields\x18\x07 \x03(\x0b\x32+.diode.v1.ProviderNetwork.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0b_service_idB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xfc\x03\n\x03RIR\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\"\n\nis_private\x18\x03 \x01(\x08H\x00R\tisPrivate\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x44\n\rcustom_fields\x18\x06 \x03(\x0b\x32\x1f.diode.v1.RIR.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0b_is_privateB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\x97\x0f\n\x04Rack\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12$\n\x0b\x66\x61\x63ility_id\x18\x02 \x01(\tH\x00R\nfacilityId\x88\x01\x01\x12\"\n\x04site\x18\x03 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12\x33\n\x08location\x18\x04 \x01(\x0b\x32\x12.diode.v1.LocationH\x01R\x08location\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12T\n\x06status\x18\x06 \x01(\tB7\xfa\x42\x34r2R\x06\x61\x63tiveR\tavailableR\ndeprecatedR\x07plannedR\x08reservedH\x03R\x06status\x88\x01\x01\x12+\n\x04role\x18\x07 \x01(\x0b\x32\x12.diode.v1.RackRoleH\x04R\x04role\x88\x01\x01\x12\x1b\n\x06serial\x18\x08 \x01(\tH\x05R\x06serial\x88\x01\x01\x12 \n\tasset_tag\x18\t \x01(\tH\x06R\x08\x61ssetTag\x88\x01\x01\x12\x34\n\track_type\x18\n \x01(\x0b\x32\x12.diode.v1.RackTypeH\x07R\x08rackType\x88\x01\x01\x12\x9d\x01\n\x0b\x66orm_factor\x18\x0b \x01(\tBw\xfa\x42trrR\x0c\x32-post-frameR\x0e\x34-post-cabinetR\x0c\x34-post-frameR\x0cwall-cabinetR\x15wall-cabinet-verticalR\nwall-frameR\x13wall-frame-verticalH\x08R\nformFactor\x88\x01\x01\x12(\n\x05width\x18\x0c \x01(\x03\x42\r\xfa\x42\n\"\x08\x30\n0\x13\x30\x15\x30\x17H\tR\x05width\x88\x01\x01\x12\x1e\n\x08u_height\x18\r \x01(\x03H\nR\x07uHeight\x88\x01\x01\x12(\n\rstarting_unit\x18\x0e \x01(\x03H\x0bR\x0cstartingUnit\x88\x01\x01\x12\x1b\n\x06weight\x18\x0f \x01(\x01H\x0cR\x06weight\x88\x01\x01\x12\"\n\nmax_weight\x18\x10 \x01(\x03H\rR\tmaxWeight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x11 \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x0eR\nweightUnit\x88\x01\x01\x12\"\n\ndesc_units\x18\x12 \x01(\x08H\x0fR\tdescUnits\x88\x01\x01\x12$\n\x0bouter_width\x18\x13 \x01(\x03H\x10R\nouterWidth\x88\x01\x01\x12$\n\x0bouter_depth\x18\x14 \x01(\x03H\x11R\nouterDepth\x88\x01\x01\x12\x31\n\nouter_unit\x18\x15 \x01(\tB\r\xfa\x42\nr\x08R\x02inR\x02mmH\x12R\touterUnit\x88\x01\x01\x12*\n\x0emounting_depth\x18\x16 \x01(\x03H\x13R\rmountingDepth\x88\x01\x01\x12\x42\n\x07\x61irflow\x18\x17 \x01(\tB#\xfa\x42 r\x1eR\rfront-to-rearR\rrear-to-frontH\x14R\x07\x61irflow\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x18 \x01(\tH\x15R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x19 \x01(\tH\x16R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x1a \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\x1b \x03(\x0b\x32 .diode.v1.Rack.CustomFieldsEntryR\x0c\x63ustomFields\x12&\n\x0couter_height\x18\x1c \x01(\x03H\x17R\x0bouterHeight\x88\x01\x01\x12\x39\n\x08metadata\x18\x1d \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x1e \x01(\x0b\x32\x0f.diode.v1.OwnerH\x18R\x05owner\x88\x01\x01\x12.\n\x05group\x18\x1f \x01(\x0b\x32\x13.diode.v1.RackGroupH\x19R\x05group\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_facility_idB\x0b\n\t_locationB\t\n\x07_tenantB\t\n\x07_statusB\x07\n\x05_roleB\t\n\x07_serialB\x0c\n\n_asset_tagB\x0c\n\n_rack_typeB\x0e\n\x0c_form_factorB\x08\n\x06_widthB\x0b\n\t_u_heightB\x10\n\x0e_starting_unitB\t\n\x07_weightB\r\n\x0b_max_weightB\x0e\n\x0c_weight_unitB\r\n\x0b_desc_unitsB\x0e\n\x0c_outer_widthB\x0e\n\x0c_outer_depthB\r\n\x0b_outer_unitB\x11\n\x0f_mounting_depthB\n\n\x08_airflowB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x0f\n\r_outer_heightB\x08\n\x06_ownerB\x08\n\x06_group\"\xdf\x04\n\x0fRackReservation\x12\"\n\x04rack\x18\x01 \x01(\x0b\x32\x0e.diode.v1.RackR\x04rack\x12\x14\n\x05units\x18\x02 \x03(\x03R\x05units\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x01R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12P\n\rcustom_fields\x18\x07 \x03(\x0b\x32+.diode.v1.RackReservation.CustomFieldsEntryR\x0c\x63ustomFields\x12:\n\x06status\x18\x08 \x01(\tB\x1d\xfa\x42\x1ar\x18R\x06\x61\x63tiveR\x07pendingR\x05staleH\x02R\x06status\x88\x01\x01\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\x0b\n\t_commentsB\t\n\x07_statusB\x08\n\x06_owner\"\xf8\x03\n\x08RackRole\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x06 \x03(\x0b\x32$.diode.v1.RackRole.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xde\n\n\x08RackType\x12:\n\x0cmanufacturer\x18\x01 \x01(\x0b\x32\x16.diode.v1.ManufacturerR\x0cmanufacturer\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model\x12\x12\n\x04slug\x18\x03 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x9d\x01\n\x0b\x66orm_factor\x18\x05 \x01(\tBw\xfa\x42trrR\x0c\x32-post-frameR\x0e\x34-post-cabinetR\x0c\x34-post-frameR\x0cwall-cabinetR\x15wall-cabinet-verticalR\nwall-frameR\x13wall-frame-verticalH\x01R\nformFactor\x88\x01\x01\x12(\n\x05width\x18\x06 \x01(\x03\x42\r\xfa\x42\n\"\x08\x30\n0\x13\x30\x15\x30\x17H\x02R\x05width\x88\x01\x01\x12\x1e\n\x08u_height\x18\x07 \x01(\x03H\x03R\x07uHeight\x88\x01\x01\x12(\n\rstarting_unit\x18\x08 \x01(\x03H\x04R\x0cstartingUnit\x88\x01\x01\x12\"\n\ndesc_units\x18\t \x01(\x08H\x05R\tdescUnits\x88\x01\x01\x12$\n\x0bouter_width\x18\n \x01(\x03H\x06R\nouterWidth\x88\x01\x01\x12$\n\x0bouter_depth\x18\x0b \x01(\x03H\x07R\nouterDepth\x88\x01\x01\x12\x31\n\nouter_unit\x18\x0c \x01(\tB\r\xfa\x42\nr\x08R\x02inR\x02mmH\x08R\touterUnit\x88\x01\x01\x12\x1b\n\x06weight\x18\r \x01(\x01H\tR\x06weight\x88\x01\x01\x12\"\n\nmax_weight\x18\x0e \x01(\x03H\nR\tmaxWeight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x0f \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x0bR\nweightUnit\x88\x01\x01\x12*\n\x0emounting_depth\x18\x10 \x01(\x03H\x0cR\rmountingDepth\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x11 \x01(\tH\rR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x12 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x13 \x03(\x0b\x32$.diode.v1.RackType.CustomFieldsEntryR\x0c\x63ustomFields\x12&\n\x0couter_height\x18\x14 \x01(\x03H\x0eR\x0bouterHeight\x88\x01\x01\x12\x39\n\x08metadata\x18\x15 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x16 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0fR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_form_factorB\x08\n\x06_widthB\x0b\n\t_u_heightB\x10\n\x0e_starting_unitB\r\n\x0b_desc_unitsB\x0e\n\x0c_outer_widthB\x0e\n\x0c_outer_depthB\r\n\x0b_outer_unitB\t\n\x07_weightB\r\n\x0b_max_weightB\x0e\n\x0c_weight_unitB\x11\n\x0f_mounting_depthB\x0b\n\t_commentsB\x0f\n\r_outer_heightB\x08\n\x06_owner\"\xf6\x08\n\x08RearPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xc4\x03\n\x04type\x18\x05 \x01(\tB\xaf\x03\xfa\x42\xab\x03r\xa8\x03R\t110-punchR\x04\x34p2cR\x04\x34p4cR\x04\x36p2cR\x04\x36p4cR\x04\x36p6cR\x04\x38p2cR\x04\x38p4cR\x04\x38p6cR\x04\x38p8cR\x03\x62ncR\x02\x63sR\x01\x66R\x02\x66\x63R\x06\x66\x63-apcR\x05\x66\x63-pcR\x06\x66\x63-upcR\x04gg45R\x02lcR\x06lc-apcR\x05lc-pcR\x06lc-upcR\x03lshR\x07lsh-apcR\x06lsh-pcR\x07lsh-upcR\x03lx5R\x07lx5-apcR\x06lx5-pcR\x07lx5-upcR\x03mpoR\x05mrj21R\x04mtrjR\x01nR\x05otherR\x02scR\x06sc-apcR\x05sc-pcR\x06sc-upcR\x07sma-905R\x07sma-906R\x02snR\x06spliceR\x02stR\x07tera-1pR\x07tera-2pR\x07tera-4pR\x06urm-p2R\x06urm-p4R\x06urm-p8R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bR\x04type\x12\x19\n\x05\x63olor\x18\x06 \x01(\tH\x02R\x05\x63olor\x88\x01\x01\x12!\n\tpositions\x18\x07 \x01(\x03H\x03R\tpositions\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\t \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x0b \x03(\x0b\x32$.diode.v1.RearPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x08\n\x06_colorB\x0c\n\n_positionsB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\x89\x04\n\x06Region\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12-\n\x06parent\x18\x03 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x06 \x03(\x0b\x32\".diode.v1.Region.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xf3\x03\n\x04Role\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x1b\n\x06weight\x18\x03 \x01(\x03H\x00R\x06weight\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\x06 \x03(\x0b\x32 .diode.v1.Role.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_weightB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xff\x03\n\x0bRouteTarget\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x06tenant\x18\x02 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.RouteTarget.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xf3\x07\n\x07Service\x12\x31\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceB\x02\x18\x01H\x01R\x06\x64\x65vice\x88\x01\x01\x12J\n\x0fvirtual_machine\x18\x02 \x01(\x0b\x32\x18.diode.v1.VirtualMachineB\x02\x18\x01H\x02R\x0evirtualMachine\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x36\n\x08protocol\x18\x04 \x01(\tB\x15\xfa\x42\x12r\x10R\x04sctpR\x03tcpR\x03udpH\x03R\x08protocol\x88\x01\x01\x12\x14\n\x05ports\x18\x05 \x03(\x03R\x05ports\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12H\n\rcustom_fields\x18\t \x03(\x0b\x32#.diode.v1.Service.CustomFieldsEntryR\x0c\x63ustomFields\x12\x35\n\x0bipaddresses\x18\n \x03(\x0b\x32\x13.diode.v1.IPAddressR\x0bipaddresses\x12\x44\n\x14parent_object_device\x18\x0b \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x12parentObjectDevice\x12N\n\x18parent_object_fhrp_group\x18\x0c \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x15parentObjectFhrpGroup\x12]\n\x1dparent_object_virtual_machine\x18\r \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x1aparentObjectVirtualMachine\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0f\n\rparent_objectB\t\n\x07_deviceB\x12\n\x10_virtual_machineB\x0b\n\t_protocolB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xc6\x08\n\x04Site\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12V\n\x06status\x18\x03 \x01(\tB9\xfa\x42\x36r4R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x07plannedR\x07retiredR\x07stagingH\x00R\x06status\x88\x01\x01\x12-\n\x06region\x18\x04 \x01(\x0b\x32\x10.diode.v1.RegionH\x01R\x06region\x88\x01\x01\x12.\n\x05group\x18\x05 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x02R\x05group\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x03R\x06tenant\x88\x01\x01\x12\x1f\n\x08\x66\x61\x63ility\x18\x07 \x01(\tH\x04R\x08\x66\x61\x63ility\x88\x01\x01\x12 \n\ttime_zone\x18\x08 \x01(\tH\x05R\x08timeZone\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\t \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12.\n\x10physical_address\x18\n \x01(\tH\x07R\x0fphysicalAddress\x88\x01\x01\x12.\n\x10shipping_address\x18\x0b \x01(\tH\x08R\x0fshippingAddress\x88\x01\x01\x12\x1f\n\x08latitude\x18\x0c \x01(\x01H\tR\x08latitude\x88\x01\x01\x12!\n\tlongitude\x18\r \x01(\x01H\nR\tlongitude\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\x0bR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\x10 \x03(\x0b\x32 .diode.v1.Site.CustomFieldsEntryR\x0c\x63ustomFields\x12!\n\x04\x61sns\x18\x11 \x03(\x0b\x32\r.diode.v1.ASNR\x04\x61sns\x12\x39\n\x08metadata\x18\x12 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x13 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0cR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_statusB\t\n\x07_regionB\x08\n\x06_groupB\t\n\x07_tenantB\x0b\n\t_facilityB\x0c\n\n_time_zoneB\x0e\n\x0c_descriptionB\x13\n\x11_physical_addressB\x13\n\x11_shipping_addressB\x0b\n\t_latitudeB\x0c\n\n_longitudeB\x0b\n\t_commentsB\x08\n\x06_owner\"\x92\x04\n\tSiteGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x30\n\x06parent\x18\x03 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x06 \x03(\x0b\x32%.diode.v1.SiteGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd6\x0f\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1b\n\x06weight\x18\x05 \x01(\x03H\x02R\x06weight\x88\x01\x01\x12\xe7\r\n\x0cobject_types\x18\x06 \x03(\tB\xc3\r\xfa\x42\xbf\r\x92\x01\xbb\r\"\xb8\rr\xb5\rR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1f\x63ircuits.circuitgroupassignmentR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\ndcim.cableR\x10\x64\x63im.cablebundleR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x13\x65xtras.journalentryR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x19tenancy.contactassignmentR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkR\x0bobjectTypes\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x08\n\x06_colorB\x0e\n\x0c_descriptionB\t\n\x07_weight\"\x8b\x04\n\x06Tenant\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x30\n\x05group\x18\x03 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x05group\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x07 \x03(\x0b\x32\".diode.v1.Tenant.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_groupB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x98\x04\n\x0bTenantGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x32\n\x06parent\x18\x03 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.TenantGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xe7\x06\n\x06Tunnel\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x38\n\x06status\x18\x02 \x01(\tB \xfa\x42\x1dr\x1bR\x06\x61\x63tiveR\x08\x64isabledR\x07plannedR\x06status\x12\x30\n\x05group\x18\x03 \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x05group\x88\x01\x01\x12v\n\rencapsulation\x18\x04 \x01(\tBP\xfa\x42MrKR\x03greR\x05ip-ipR\x0fipsec-transportR\x0cipsec-tunnelR\x04l2tpR\x07openvpnR\x04pptpR\twireguardR\rencapsulation\x12@\n\ripsec_profile\x18\x05 \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x01R\x0cipsecProfile\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12 \n\ttunnel_id\x18\x07 \x01(\x03H\x03R\x08tunnelId\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x0b \x03(\x0b\x32\".diode.v1.Tunnel.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_groupB\x10\n\x0e_ipsec_profileB\t\n\x07_tenantB\x0c\n\n_tunnel_idB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd9\x03\n\x0bTunnelGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x05 \x03(\x0b\x32\'.diode.v1.TunnelGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xb3\x43\n\x11TunnelTermination\x12(\n\x06tunnel\x18\x01 \x01(\x0b\x32\x10.diode.v1.TunnelR\x06tunnel\x12+\n\x04role\x18\x02 \x01(\tB\x17\xfa\x42\x14r\x12R\x03hubR\x04peerR\x05spokeR\x04role\x12\x38\n\x0ftermination_asn\x18\x03 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x0eterminationAsn\x12H\n\x15termination_asn_range\x18\x04 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x13terminationAsnRange\x12J\n\x15termination_aggregate\x18\x05 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x14terminationAggregate\x12>\n\x11termination_cable\x18\x06 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x10terminationCable\x12K\n\x16termination_cable_path\x18\x07 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x14terminationCablePath\x12\x64\n\x1dtermination_cable_termination\x18\x08 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x1bterminationCableTermination\x12\x44\n\x13termination_circuit\x18\t \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x12terminationCircuit\x12T\n\x19termination_circuit_group\x18\n \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x17terminationCircuitGroup\x12s\n$termination_circuit_group_assignment\x18\x0b \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R!terminationCircuitGroupAssignment\x12\x66\n\x1ftermination_circuit_termination\x18\x0c \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x1dterminationCircuitTermination\x12Q\n\x18termination_circuit_type\x18\r \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x16terminationCircuitType\x12\x44\n\x13termination_cluster\x18\x0e \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x12terminationCluster\x12T\n\x19termination_cluster_group\x18\x0f \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x17terminationClusterGroup\x12Q\n\x18termination_cluster_type\x18\x10 \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x16terminationClusterType\x12Q\n\x18termination_console_port\x18\x11 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x16terminationConsolePort\x12\x64\n\x1ftermination_console_server_port\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1cterminationConsoleServerPort\x12\x44\n\x13termination_contact\x18\x13 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x12terminationContact\x12\x63\n\x1etermination_contact_assignment\x18\x14 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x1cterminationContactAssignment\x12T\n\x19termination_contact_group\x18\x15 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x17terminationContactGroup\x12Q\n\x18termination_contact_role\x18\x16 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x16terminationContactRole\x12\x41\n\x12termination_device\x18\x17 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x11terminationDevice\x12K\n\x16termination_device_bay\x18\x18 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x14terminationDeviceBay\x12N\n\x17termination_device_role\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x15terminationDeviceRole\x12N\n\x17termination_device_type\x18\x1a \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x15terminationDeviceType\x12K\n\x16termination_fhrp_group\x18\x1b \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x14terminationFhrpGroup\x12j\n!termination_fhrp_group_assignment\x18\x1c \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x1eterminationFhrpGroupAssignment\x12K\n\x16termination_front_port\x18\x1d \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x14terminationFrontPort\x12K\n\x16termination_ike_policy\x18\x1e \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x14terminationIkePolicy\x12Q\n\x18termination_ike_proposal\x18\x1f \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x16terminationIkeProposal\x12K\n\x16termination_ip_address\x18 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x14terminationIpAddress\x12\x45\n\x14termination_ip_range\x18! \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x12terminationIpRange\x12R\n\x19termination_ip_sec_policy\x18\" \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x16terminationIpSecPolicy\x12U\n\x1atermination_ip_sec_profile\x18# \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x17terminationIpSecProfile\x12X\n\x1btermination_ip_sec_proposal\x18$ \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x18terminationIpSecProposal\x12J\n\x15termination_interface\x18% \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x14terminationInterface\x12W\n\x1atermination_inventory_item\x18& \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x18terminationInventoryItem\x12\x64\n\x1ftermination_inventory_item_role\x18\' \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x1cterminationInventoryItemRole\x12>\n\x11termination_l2vpn\x18( \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x10terminationL2vpn\x12`\n\x1dtermination_l2vpn_termination\x18) \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x1bterminationL2vpnTermination\x12G\n\x14termination_location\x18* \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x13terminationLocation\x12N\n\x17termination_mac_address\x18+ \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x15terminationMacAddress\x12S\n\x18termination_manufacturer\x18, \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x17terminationManufacturer\x12\x41\n\x12termination_module\x18- \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x11terminationModule\x12K\n\x16termination_module_bay\x18. \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x14terminationModuleBay\x12N\n\x17termination_module_type\x18/ \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x15terminationModuleType\x12G\n\x14termination_platform\x18\x30 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x13terminationPlatform\x12K\n\x16termination_power_feed\x18\x31 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x14terminationPowerFeed\x12Q\n\x18termination_power_outlet\x18\x32 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x16terminationPowerOutlet\x12N\n\x17termination_power_panel\x18\x33 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x15terminationPowerPanel\x12K\n\x16termination_power_port\x18\x34 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x14terminationPowerPort\x12\x41\n\x12termination_prefix\x18\x35 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x11terminationPrefix\x12G\n\x14termination_provider\x18\x36 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x13terminationProvider\x12]\n\x1ctermination_provider_account\x18\x37 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x1aterminationProviderAccount\x12]\n\x1ctermination_provider_network\x18\x38 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1aterminationProviderNetwork\x12\x38\n\x0ftermination_rir\x18\x39 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x0eterminationRir\x12;\n\x10termination_rack\x18: \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x0fterminationRack\x12]\n\x1ctermination_rack_reservation\x18; \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x1aterminationRackReservation\x12H\n\x15termination_rack_role\x18< \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x13terminationRackRole\x12H\n\x15termination_rack_type\x18= \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x13terminationRackType\x12H\n\x15termination_rear_port\x18> \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x13terminationRearPort\x12\x41\n\x12termination_region\x18? \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x11terminationRegion\x12;\n\x10termination_role\x18@ \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x0fterminationRole\x12Q\n\x18termination_route_target\x18\x41 \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x16terminationRouteTarget\x12\x44\n\x13termination_service\x18\x42 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x12terminationService\x12;\n\x10termination_site\x18\x43 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x0fterminationSite\x12K\n\x16termination_site_group\x18\x44 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x14terminationSiteGroup\x12\x38\n\x0ftermination_tag\x18\x45 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x0eterminationTag\x12\x41\n\x12termination_tenant\x18\x46 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x11terminationTenant\x12Q\n\x18termination_tenant_group\x18G \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x16terminationTenantGroup\x12\x41\n\x12termination_tunnel\x18H \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x11terminationTunnel\x12Q\n\x18termination_tunnel_group\x18I \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x16terminationTunnelGroup\x12\x63\n\x1etermination_tunnel_termination\x18J \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1cterminationTunnelTermination\x12;\n\x10termination_vlan\x18K \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x0fterminationVlan\x12K\n\x16termination_vlan_group\x18L \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x14terminationVlanGroup\x12p\n#termination_vlan_translation_policy\x18M \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R terminationVlanTranslationPolicy\x12j\n!termination_vlan_translation_rule\x18N \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x1eterminationVlanTranslationRule\x12Q\n\x18termination_vm_interface\x18O \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x16terminationVmInterface\x12\x38\n\x0ftermination_vrf\x18P \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x0eterminationVrf\x12Z\n\x1btermination_virtual_chassis\x18Q \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x19terminationVirtualChassis\x12Z\n\x1btermination_virtual_circuit\x18R \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x19terminationVirtualCircuit\x12|\n\'termination_virtual_circuit_termination\x18S \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R$terminationVirtualCircuitTermination\x12g\n termination_virtual_circuit_type\x18T \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x1dterminationVirtualCircuitType\x12m\n\"termination_virtual_device_context\x18U \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1fterminationVirtualDeviceContext\x12Q\n\x18termination_virtual_disk\x18V \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x16terminationVirtualDisk\x12Z\n\x1btermination_virtual_machine\x18W \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x19terminationVirtualMachine\x12Q\n\x18termination_wireless_lan\x18X \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x16terminationWirelessLan\x12\x61\n\x1etermination_wireless_lan_group\x18Y \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x1bterminationWirelessLanGroup\x12T\n\x19termination_wireless_link\x18Z \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x17terminationWirelessLink\x12Q\n\x18termination_custom_field\x18^ \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x16terminationCustomField\x12n\n#termination_custom_field_choice_set\x18_ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1fterminationCustomFieldChoiceSet\x12T\n\x19termination_journal_entry\x18` \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x17terminationJournalEntry\x12\x64\n\x1ftermination_module_type_profile\x18\x61 \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x1cterminationModuleTypeProfile\x12N\n\x17termination_custom_link\x18\x62 \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x15terminationCustomLink\x12>\n\x11termination_owner\x18\x64 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x10terminationOwner\x12N\n\x17termination_owner_group\x18\x65 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x15terminationOwnerGroup\x12Q\n\x18termination_cable_bundle\x18\x66 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x16terminationCableBundle\x12K\n\x16termination_rack_group\x18g \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x14terminationRackGroup\x12T\n\x19termination_script_module\x18h \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x17terminationScriptModule\x12g\n termination_virtual_machine_type\x18i \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x1dterminationVirtualMachineType\x12\x37\n\noutside_ip\x18[ \x01(\x0b\x32\x13.diode.v1.IPAddressH\x01R\toutsideIp\x88\x01\x01\x12!\n\x04tags\x18\\ \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18] \x03(\x0b\x32-.diode.v1.TunnelTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x63 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0bterminationB\r\n\x0b_outside_ip\"\xf6\x06\n\x04VLAN\x12\'\n\x04site\x18\x01 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x04site\x88\x01\x01\x12.\n\x05group\x18\x02 \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x01R\x05group\x88\x01\x01\x12\x10\n\x03vid\x18\x03 \x01(\x03R\x03vid\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12@\n\x06status\x18\x06 \x01(\tB#\xfa\x42 r\x1eR\x06\x61\x63tiveR\ndeprecatedR\x08reservedH\x03R\x06status\x88\x01\x01\x12\'\n\x04role\x18\x07 \x01(\x0b\x32\x0e.diode.v1.RoleH\x04R\x04role\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12\x35\n\tqinq_role\x18\t \x01(\tB\x13\xfa\x42\x10r\x0eR\x05\x63vlanR\x05svlanH\x06R\x08qinqRole\x88\x01\x01\x12\x32\n\nqinq_svlan\x18\n \x01(\x0b\x32\x0e.diode.v1.VLANH\x07R\tqinqSvlan\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x08R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\r \x03(\x0b\x32 .diode.v1.VLAN.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\tR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_siteB\x08\n\x06_groupB\t\n\x07_tenantB\t\n\x07_statusB\x07\n\x05_roleB\x0e\n\x0c_descriptionB\x0c\n\n_qinq_roleB\r\n\x0b_qinq_svlanB\x0b\n\t_commentsB\x08\n\x06_owner\"\x93\x08\n\tVLANGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x38\n\rscope_cluster\x18\x03 \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x0cscopeCluster\x12H\n\x13scope_cluster_group\x18\x04 \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x11scopeClusterGroup\x12;\n\x0escope_location\x18\x05 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12/\n\nscope_rack\x18\x06 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\tscopeRack\x12\x35\n\x0cscope_region\x18\x07 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\t \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12?\n\x10scope_rack_group\x18\x12 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x0escopeRackGroup\x12\x1d\n\nvid_ranges\x18\n \x03(\x03R\tvidRanges\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\r \x03(\x0b\x32%.diode.v1.VLANGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12-\n\x06tenant\x18\x0e \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x39\n\x08metadata\x18\x0f \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x10 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x11 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x0e\n\x0c_descriptionB\t\n\x07_tenantB\x08\n\x06_ownerB\x0b\n\t_comments\"\x81\x02\n\x15VLANTranslationPolicy\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x04 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xfc\x01\n\x13VLANTranslationRule\x12\x37\n\x06policy\x18\x01 \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyR\x06policy\x12\x1b\n\tlocal_vid\x18\x02 \x01(\x03R\x08localVid\x12\x1d\n\nremote_vid\x18\x03 \x01(\x03R\tremoteVid\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0e\n\x0c_description\"\xbc\t\n\x0bVMInterface\x12\x41\n\x0fvirtual_machine\x18\x01 \x01(\x0b\x32\x18.diode.v1.VirtualMachineR\x0evirtualMachine\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n\x07\x65nabled\x18\x03 \x01(\x08H\x00R\x07\x65nabled\x88\x01\x01\x12\x32\n\x06parent\x18\x04 \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x01R\x06parent\x88\x01\x01\x12\x32\n\x06\x62ridge\x18\x05 \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x02R\x06\x62ridge\x88\x01\x01\x12\x15\n\x03mtu\x18\x06 \x01(\x03H\x03R\x03mtu\x88\x01\x01\x12I\n\x13primary_mac_address\x18\x07 \x01(\x0b\x32\x14.diode.v1.MACAddressH\x04R\x11primaryMacAddress\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12\x42\n\x04mode\x18\t \x01(\tB)\xfa\x42&r$R\x06\x61\x63\x63\x65ssR\x06q-in-qR\x06taggedR\ntagged-allH\x06R\x04mode\x88\x01\x01\x12\x38\n\runtagged_vlan\x18\n \x01(\x0b\x32\x0e.diode.v1.VLANH\x07R\x0cuntaggedVlan\x88\x01\x01\x12\x32\n\nqinq_svlan\x18\x0b \x01(\x0b\x32\x0e.diode.v1.VLANH\x08R\tqinqSvlan\x88\x01\x01\x12\\\n\x17vlan_translation_policy\x18\x0c \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\tR\x15vlanTranslationPolicy\x88\x01\x01\x12$\n\x03vrf\x18\r \x01(\x0b\x32\r.diode.v1.VRFH\nR\x03vrf\x88\x01\x01\x12!\n\x04tags\x18\x0e \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x0f \x03(\x0b\x32\'.diode.v1.VMInterface.CustomFieldsEntryR\x0c\x63ustomFields\x12\x31\n\x0ctagged_vlans\x18\x10 \x03(\x0b\x32\x0e.diode.v1.VLANR\x0btaggedVlans\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0bR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\n\n\x08_enabledB\t\n\x07_parentB\t\n\x07_bridgeB\x06\n\x04_mtuB\x16\n\x14_primary_mac_addressB\x0e\n\x0c_descriptionB\x07\n\x05_modeB\x10\n\x0e_untagged_vlanB\r\n\x0b_qinq_svlanB\x1a\n\x18_vlan_translation_policyB\x06\n\x04_vrfB\x08\n\x06_owner\"\xc6\x05\n\x03VRF\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x13\n\x02rd\x18\x02 \x01(\tH\x00R\x02rd\x88\x01\x01\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12*\n\x0e\x65nforce_unique\x18\x04 \x01(\x08H\x02R\renforceUnique\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x06 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x07 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x44\n\rcustom_fields\x18\x08 \x03(\x0b\x32\x1f.diode.v1.VRF.CustomFieldsEntryR\x0c\x63ustomFields\x12<\n\x0eimport_targets\x18\t \x03(\x0b\x32\x15.diode.v1.RouteTargetR\rimportTargets\x12<\n\x0e\x65xport_targets\x18\n \x03(\x0b\x32\x15.diode.v1.RouteTargetR\rexportTargets\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x05\n\x03_rdB\t\n\x07_tenantB\x11\n\x0f_enforce_uniqueB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xad\x04\n\x0eVirtualChassis\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06\x64omain\x18\x02 \x01(\tH\x00R\x06\x64omain\x88\x01\x01\x12-\n\x06master\x18\x03 \x01(\x0b\x32\x10.diode.v1.DeviceH\x01R\x06master\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12O\n\rcustom_fields\x18\x07 \x03(\x0b\x32*.diode.v1.VirtualChassis.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_domainB\t\n\x07_masterB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd2\x06\n\x0eVirtualCircuit\x12\x10\n\x03\x63id\x18\x01 \x01(\tR\x03\x63id\x12\x44\n\x10provider_network\x18\x02 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkR\x0fproviderNetwork\x12I\n\x10provider_account\x18\x03 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x88\x01\x01\x12\x30\n\x04type\x18\x04 \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeR\x04type\x12j\n\x06status\x18\x05 \x01(\tBM\xfa\x42JrHR\x06\x61\x63tiveR\x0e\x64\x65\x63ommissionedR\x0e\x64\x65provisioningR\x07offlineR\x07plannedR\x0cprovisioningH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12O\n\rcustom_fields\x18\n \x03(\x0b\x32*.diode.v1.VirtualCircuit.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_provider_accountB\t\n\x07_statusB\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x9a\x04\n\x19VirtualCircuitTermination\x12\x41\n\x0fvirtual_circuit\x18\x01 \x01(\x0b\x32\x18.diode.v1.VirtualCircuitR\x0evirtualCircuit\x12\x30\n\x04role\x18\x02 \x01(\tB\x17\xfa\x42\x14r\x12R\x03hubR\x04peerR\x05spokeH\x00R\x04role\x88\x01\x01\x12\x31\n\tinterface\x18\x03 \x01(\x0b\x32\x13.diode.v1.InterfaceR\tinterface\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12Z\n\rcustom_fields\x18\x06 \x03(\x0b\x32\x35.diode.v1.VirtualCircuitTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_roleB\x0e\n\x0c_description\"\x8c\x04\n\x12VirtualCircuitType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12S\n\rcustom_fields\x18\x06 \x03(\x0b\x32..diode.v1.VirtualCircuitType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xbe\x06\n\x14VirtualDeviceContext\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12(\n\x06\x64\x65vice\x18\x02 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12#\n\nidentifier\x18\x03 \x01(\x03H\x00R\nidentifier\x88\x01\x01\x12-\n\x06tenant\x18\x04 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12\x39\n\x0bprimary_ip4\x18\x05 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x02R\nprimaryIp4\x88\x01\x01\x12\x39\n\x0bprimary_ip6\x18\x06 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x03R\nprimaryIp6\x88\x01\x01\x12\x37\n\x06status\x18\x07 \x01(\tB\x1f\xfa\x42\x1cr\x1aR\x06\x61\x63tiveR\x07offlineR\x07plannedR\x06status\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12U\n\rcustom_fields\x18\x0b \x03(\x0b\x32\x30.diode.v1.VirtualDeviceContext.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0b_identifierB\t\n\x07_tenantB\x0e\n\x0c_primary_ip4B\x0e\n\x0c_primary_ip6B\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xee\x03\n\x0bVirtualDisk\x12\x41\n\x0fvirtual_machine\x18\x01 \x01(\x0b\x32\x18.diode.v1.VirtualMachineR\x0evirtualMachine\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x12\n\x04size\x18\x04 \x01(\x03R\x04size\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.VirtualDisk.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_owner\"\x8c\x0b\n\x0eVirtualMachine\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x65\n\x06status\x18\x02 \x01(\tBH\xfa\x42\x45rCR\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x06\x66\x61iledR\x07offlineR\x06pausedR\x07plannedR\x06stagedH\x00R\x06status\x88\x01\x01\x12\'\n\x04site\x18\x03 \x01(\x0b\x32\x0e.diode.v1.SiteH\x01R\x04site\x88\x01\x01\x12\x30\n\x07\x63luster\x18\x04 \x01(\x0b\x32\x11.diode.v1.ClusterH\x02R\x07\x63luster\x88\x01\x01\x12-\n\x06\x64\x65vice\x18\x05 \x01(\x0b\x32\x10.diode.v1.DeviceH\x03R\x06\x64\x65vice\x88\x01\x01\x12\x1b\n\x06serial\x18\x06 \x01(\tH\x04R\x06serial\x88\x01\x01\x12-\n\x04role\x18\x07 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x05R\x04role\x88\x01\x01\x12-\n\x06tenant\x18\x08 \x01(\x0b\x32\x10.diode.v1.TenantH\x06R\x06tenant\x88\x01\x01\x12\x33\n\x08platform\x18\t \x01(\x0b\x32\x12.diode.v1.PlatformH\x07R\x08platform\x88\x01\x01\x12\x39\n\x0bprimary_ip4\x18\n \x01(\x0b\x32\x13.diode.v1.IPAddressH\x08R\nprimaryIp4\x88\x01\x01\x12\x39\n\x0bprimary_ip6\x18\x0b \x01(\x0b\x32\x13.diode.v1.IPAddressH\tR\nprimaryIp6\x88\x01\x01\x12\x19\n\x05vcpus\x18\x0c \x01(\x01H\nR\x05vcpus\x88\x01\x01\x12\x1b\n\x06memory\x18\r \x01(\x03H\x0bR\x06memory\x88\x01\x01\x12\x17\n\x04\x64isk\x18\x0e \x01(\x03H\x0cR\x04\x64isk\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0f \x01(\tH\rR\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x10 \x01(\tH\x0eR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x11 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12O\n\rcustom_fields\x18\x12 \x03(\x0b\x32*.diode.v1.VirtualMachine.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x13 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12\x42\n\rstart_on_boot\x18\x14 \x01(\tB\x19\xfa\x42\x16r\x14R\tlaststateR\x03offR\x02onH\x0fR\x0bstartOnBoot\x88\x01\x01\x12*\n\x05owner\x18\x15 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x10R\x05owner\x88\x01\x01\x12S\n\x14virtual_machine_type\x18\x16 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x11R\x12virtualMachineType\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_statusB\x07\n\x05_siteB\n\n\x08_clusterB\t\n\x07_deviceB\t\n\x07_serialB\x07\n\x05_roleB\t\n\x07_tenantB\x0b\n\t_platformB\x0e\n\x0c_primary_ip4B\x0e\n\x0c_primary_ip6B\x08\n\x06_vcpusB\t\n\x07_memoryB\x07\n\x05_diskB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x10\n\x0e_start_on_bootB\x08\n\x06_ownerB\x17\n\x15_virtual_machine_type\"\x93\t\n\x0bWirelessLAN\x12\x12\n\x04ssid\x18\x01 \x01(\tR\x04ssid\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x35\n\x05group\x18\x03 \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x02R\x05group\x88\x01\x01\x12J\n\x06status\x18\x04 \x01(\tB-\xfa\x42*r(R\x06\x61\x63tiveR\ndeprecatedR\x08\x64isabledR\x08reservedH\x03R\x06status\x88\x01\x01\x12\'\n\x04vlan\x18\x05 \x01(\x0b\x32\x0e.diode.v1.VLANH\x04R\x04vlan\x88\x01\x01\x12;\n\x0escope_location\x18\x06 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12\x35\n\x0cscope_region\x18\x07 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\t \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12-\n\x06tenant\x18\n \x01(\x0b\x32\x10.diode.v1.TenantH\x05R\x06tenant\x88\x01\x01\x12P\n\tauth_type\x18\x0b \x01(\tB.\xfa\x42+r)R\x04openR\x03wepR\x0ewpa-enterpriseR\x0cwpa-personalH\x06R\x08\x61uthType\x88\x01\x01\x12<\n\x0b\x61uth_cipher\x18\x0c \x01(\tB\x16\xfa\x42\x13r\x11R\x03\x61\x65sR\x04\x61utoR\x04tkipH\x07R\nauthCipher\x88\x01\x01\x12\x1e\n\x08\x61uth_psk\x18\r \x01(\tH\x08R\x07\x61uthPsk\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x10 \x03(\x0b\x32\'.diode.v1.WirelessLAN.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x0e\n\x0c_descriptionB\x08\n\x06_groupB\t\n\x07_statusB\x07\n\x05_vlanB\t\n\x07_tenantB\x0c\n\n_auth_typeB\x0e\n\x0c_auth_cipherB\x0b\n\t_auth_pskB\x0b\n\t_commentsB\x08\n\x06_owner\"\xa7\x04\n\x10WirelessLANGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x37\n\x06parent\x18\x03 \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12Q\n\rcustom_fields\x18\x06 \x03(\x0b\x32,.diode.v1.WirelessLANGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xaa\x08\n\x0cWirelessLink\x12\x34\n\x0binterface_a\x18\x01 \x01(\x0b\x32\x13.diode.v1.InterfaceR\ninterfaceA\x12\x34\n\x0binterface_b\x18\x02 \x01(\x0b\x32\x13.diode.v1.InterfaceR\ninterfaceB\x12\x17\n\x04ssid\x18\x03 \x01(\tH\x00R\x04ssid\x88\x01\x01\x12G\n\x06status\x18\x04 \x01(\tB*\xfa\x42\'r%R\tconnectedR\x0f\x64\x65\x63ommissioningR\x07plannedH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12P\n\tauth_type\x18\x06 \x01(\tB.\xfa\x42+r)R\x04openR\x03wepR\x0ewpa-enterpriseR\x0cwpa-personalH\x03R\x08\x61uthType\x88\x01\x01\x12<\n\x0b\x61uth_cipher\x18\x07 \x01(\tB\x16\xfa\x42\x13r\x11R\x03\x61\x65sR\x04\x61utoR\x04tkipH\x04R\nauthCipher\x88\x01\x01\x12\x1e\n\x08\x61uth_psk\x18\x08 \x01(\tH\x05R\x07\x61uthPsk\x88\x01\x01\x12\x1f\n\x08\x64istance\x18\t \x01(\x01H\x06R\x08\x64istance\x88\x01\x01\x12>\n\rdistance_unit\x18\n \x01(\tB\x14\xfa\x42\x11r\x0fR\x02\x66tR\x02kmR\x01mR\x02miH\x07R\x0c\x64istanceUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x08R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0c \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\r \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x0e \x03(\x0b\x32(.diode.v1.WirelessLink.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0f \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x10 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_ssidB\t\n\x07_statusB\t\n\x07_tenantB\x0c\n\n_auth_typeB\x0e\n\x0c_auth_cipherB\x0b\n\t_auth_pskB\x0b\n\t_distanceB\x10\n\x0e_distance_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xdc(\n\x0b\x43ustomField\x12\x89\x01\n\x04type\x18\x01 \x01(\tBu\xfa\x42rrpR\x07\x62ooleanR\x04\x64\x61teR\x08\x64\x61tetimeR\x07\x64\x65\x63imalR\x07integerR\x04jsonR\x08longtextR\x0bmultiobjectR\x0bmultiselectR\x06objectR\x06selectR\x04textR\x03urlR\x04type\x12\x9d\x0f\n\x13related_object_type\x18\x02 \x01(\tB\xe7\x0e\xfa\x42\xe3\x0er\xe0\x0eR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1f\x63ircuits.circuitgroupassignmentR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\x10\x63ore.managedfileR\ndcim.cableR\x10\x64\x63im.cablebundleR\x0e\x64\x63im.cablepathR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x12\x65xtras.customfieldR\x1b\x65xtras.customfieldchoicesetR\x11\x65xtras.customlinkR\x13\x65xtras.journalentryR\nextras.tagR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x18ipam.fhrpgroupassignmentR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x19tenancy.contactassignmentR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x0busers.ownerR\x10users.ownergroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkH\x00R\x11relatedObjectType\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\"\n\ngroup_name\x18\x05 \x01(\tH\x02R\tgroupName\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08required\x18\x07 \x01(\x08H\x04R\x08required\x88\x01\x01\x12\x1b\n\x06unique\x18\x08 \x01(\x08H\x05R\x06unique\x88\x01\x01\x12(\n\rsearch_weight\x18\t \x01(\x03H\x06R\x0csearchWeight\x88\x01\x01\x12\x45\n\x0c\x66ilter_logic\x18\n \x01(\tB\x1d\xfa\x42\x1ar\x18R\x08\x64isabledR\x05\x65xactR\x05looseH\x07R\x0b\x66ilterLogic\x88\x01\x01\x12\x41\n\nui_visible\x18\x0b \x01(\tB\x1d\xfa\x42\x1ar\x18R\x06\x61lwaysR\x06hiddenR\x06if-setH\x08R\tuiVisible\x88\x01\x01\x12<\n\x0bui_editable\x18\x0c \x01(\tB\x16\xfa\x42\x13r\x11R\x06hiddenR\x02noR\x03yesH\tR\nuiEditable\x88\x01\x01\x12&\n\x0cis_cloneable\x18\r \x01(\x08H\nR\x0bisCloneable\x88\x01\x01\x12\x1d\n\x07\x64\x65\x66\x61ult\x18\x0e \x01(\tH\x0bR\x07\x64\x65\x66\x61ult\x88\x01\x01\x12\x37\n\x15related_object_filter\x18\x0f \x01(\tH\x0cR\x13relatedObjectFilter\x88\x01\x01\x12\x1b\n\x06weight\x18\x10 \x01(\x03H\rR\x06weight\x88\x01\x01\x12\x32\n\x12validation_minimum\x18\x11 \x01(\x01H\x0eR\x11validationMinimum\x88\x01\x01\x12\x32\n\x12validation_maximum\x18\x12 \x01(\x01H\x0fR\x11validationMaximum\x88\x01\x01\x12.\n\x10validation_regex\x18\x13 \x01(\tH\x10R\x0fvalidationRegex\x88\x01\x01\x12\x42\n\nchoice_set\x18\x14 \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x11R\tchoiceSet\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x15 \x01(\tH\x12R\x08\x63omments\x88\x01\x01\x12\xe7\r\n\x0cobject_types\x18\x16 \x03(\tB\xc3\r\xfa\x42\xbf\r\x92\x01\xbb\r\"\xb8\rr\xb5\rR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1f\x63ircuits.circuitgroupassignmentR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\ndcim.cableR\x10\x64\x63im.cablebundleR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x13\x65xtras.journalentryR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x19tenancy.contactassignmentR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkR\x0bobjectTypes\x12\x39\n\x08metadata\x18\x17 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x18 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x13R\x05owner\x88\x01\x01\x12\x30\n\x11validation_schema\x18\x19 \x01(\tH\x14R\x10validationSchema\x88\x01\x01\x42\x16\n\x14_related_object_typeB\x08\n\x06_labelB\r\n\x0b_group_nameB\x0e\n\x0c_descriptionB\x0b\n\t_requiredB\t\n\x07_uniqueB\x10\n\x0e_search_weightB\x0f\n\r_filter_logicB\r\n\x0b_ui_visibleB\x0e\n\x0c_ui_editableB\x0f\n\r_is_cloneableB\n\n\x08_defaultB\x18\n\x16_related_object_filterB\t\n\x07_weightB\x15\n\x13_validation_minimumB\x15\n\x13_validation_maximumB\x13\n\x11_validation_regexB\r\n\x0b_choice_setB\x0b\n\t_commentsB\x08\n\x06_ownerB\x14\n\x12_validation_schema\"\xdf\x03\n\x14\x43ustomFieldChoiceSet\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12H\n\x0c\x62\x61se_choices\x18\x03 \x01(\tB \xfa\x42\x1dr\x1bR\x04IATAR\x08ISO_3166R\tUN_LOCODEH\x01R\x0b\x62\x61seChoices\x88\x01\x01\x12\x36\n\x14order_alphabetically\x18\x04 \x01(\x08H\x02R\x13orderAlphabetically\x88\x01\x01\x12#\n\rextra_choices\x18\x05 \x03(\tR\x0c\x65xtraChoices\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12(\n\rchoice_colors\x18\x08 \x01(\tH\x04R\x0c\x63hoiceColors\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_base_choicesB\x17\n\x15_order_alphabeticallyB\x08\n\x06_ownerB\x10\n\x0e_choice_colors\"\xa9H\n\x0cJournalEntry\x12?\n\x13\x61ssigned_object_asn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x11\x61ssignedObjectAsn\x12O\n\x19\x61ssigned_object_asn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x16\x61ssignedObjectAsnRange\x12Q\n\x19\x61ssigned_object_aggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x17\x61ssignedObjectAggregate\x12\x45\n\x15\x61ssigned_object_cable\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x13\x61ssignedObjectCable\x12R\n\x1a\x61ssigned_object_cable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x17\x61ssignedObjectCablePath\x12k\n!assigned_object_cable_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x1e\x61ssignedObjectCableTermination\x12K\n\x17\x61ssigned_object_circuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x15\x61ssignedObjectCircuit\x12[\n\x1d\x61ssigned_object_circuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x1a\x61ssignedObjectCircuitGroup\x12z\n(assigned_object_circuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R$assignedObjectCircuitGroupAssignment\x12m\n#assigned_object_circuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R assignedObjectCircuitTermination\x12X\n\x1c\x61ssigned_object_circuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x19\x61ssignedObjectCircuitType\x12K\n\x17\x61ssigned_object_cluster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x15\x61ssignedObjectCluster\x12[\n\x1d\x61ssigned_object_cluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x1a\x61ssignedObjectClusterGroup\x12X\n\x1c\x61ssigned_object_cluster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x19\x61ssignedObjectClusterType\x12X\n\x1c\x61ssigned_object_console_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x19\x61ssignedObjectConsolePort\x12k\n#assigned_object_console_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1f\x61ssignedObjectConsoleServerPort\x12K\n\x17\x61ssigned_object_contact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x15\x61ssignedObjectContact\x12j\n\"assigned_object_contact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x1f\x61ssignedObjectContactAssignment\x12[\n\x1d\x61ssigned_object_contact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x1a\x61ssignedObjectContactGroup\x12X\n\x1c\x61ssigned_object_contact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x19\x61ssignedObjectContactRole\x12X\n\x1c\x61ssigned_object_custom_field\x18\x15 \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x19\x61ssignedObjectCustomField\x12u\n\'assigned_object_custom_field_choice_set\x18\x16 \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\"assignedObjectCustomFieldChoiceSet\x12H\n\x16\x61ssigned_object_device\x18\x17 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x14\x61ssignedObjectDevice\x12R\n\x1a\x61ssigned_object_device_bay\x18\x18 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x17\x61ssignedObjectDeviceBay\x12U\n\x1b\x61ssigned_object_device_role\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x18\x61ssignedObjectDeviceRole\x12U\n\x1b\x61ssigned_object_device_type\x18\x1a \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x18\x61ssignedObjectDeviceType\x12R\n\x1a\x61ssigned_object_fhrp_group\x18\x1b \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x17\x61ssignedObjectFhrpGroup\x12q\n%assigned_object_fhrp_group_assignment\x18\x1c \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R!assignedObjectFhrpGroupAssignment\x12R\n\x1a\x61ssigned_object_front_port\x18\x1d \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x17\x61ssignedObjectFrontPort\x12R\n\x1a\x61ssigned_object_ike_policy\x18\x1e \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x17\x61ssignedObjectIkePolicy\x12X\n\x1c\x61ssigned_object_ike_proposal\x18\x1f \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x19\x61ssignedObjectIkeProposal\x12R\n\x1a\x61ssigned_object_ip_address\x18 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x17\x61ssignedObjectIpAddress\x12L\n\x18\x61ssigned_object_ip_range\x18! \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x15\x61ssignedObjectIpRange\x12Y\n\x1d\x61ssigned_object_ip_sec_policy\x18\" \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x19\x61ssignedObjectIpSecPolicy\x12\\\n\x1e\x61ssigned_object_ip_sec_profile\x18# \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x1a\x61ssignedObjectIpSecProfile\x12_\n\x1f\x61ssigned_object_ip_sec_proposal\x18$ \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x1b\x61ssignedObjectIpSecProposal\x12Q\n\x19\x61ssigned_object_interface\x18% \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x17\x61ssignedObjectInterface\x12^\n\x1e\x61ssigned_object_inventory_item\x18& \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x1b\x61ssignedObjectInventoryItem\x12k\n#assigned_object_inventory_item_role\x18\' \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x1f\x61ssignedObjectInventoryItemRole\x12[\n\x1d\x61ssigned_object_journal_entry\x18( \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x1a\x61ssignedObjectJournalEntry\x12\x45\n\x15\x61ssigned_object_l2vpn\x18) \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x13\x61ssignedObjectL2vpn\x12g\n!assigned_object_l2vpn_termination\x18* \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x1e\x61ssignedObjectL2vpnTermination\x12N\n\x18\x61ssigned_object_location\x18+ \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x16\x61ssignedObjectLocation\x12U\n\x1b\x61ssigned_object_mac_address\x18, \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x18\x61ssignedObjectMacAddress\x12Z\n\x1c\x61ssigned_object_manufacturer\x18- \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x1a\x61ssignedObjectManufacturer\x12H\n\x16\x61ssigned_object_module\x18. \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x14\x61ssignedObjectModule\x12R\n\x1a\x61ssigned_object_module_bay\x18/ \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x17\x61ssignedObjectModuleBay\x12U\n\x1b\x61ssigned_object_module_type\x18\x30 \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x18\x61ssignedObjectModuleType\x12k\n#assigned_object_module_type_profile\x18\x31 \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x1f\x61ssignedObjectModuleTypeProfile\x12N\n\x18\x61ssigned_object_platform\x18\x32 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x16\x61ssignedObjectPlatform\x12R\n\x1a\x61ssigned_object_power_feed\x18\x33 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x17\x61ssignedObjectPowerFeed\x12X\n\x1c\x61ssigned_object_power_outlet\x18\x34 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x19\x61ssignedObjectPowerOutlet\x12U\n\x1b\x61ssigned_object_power_panel\x18\x35 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x18\x61ssignedObjectPowerPanel\x12R\n\x1a\x61ssigned_object_power_port\x18\x36 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x17\x61ssignedObjectPowerPort\x12H\n\x16\x61ssigned_object_prefix\x18\x37 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x14\x61ssignedObjectPrefix\x12N\n\x18\x61ssigned_object_provider\x18\x38 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x16\x61ssignedObjectProvider\x12\x64\n assigned_object_provider_account\x18\x39 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x1d\x61ssignedObjectProviderAccount\x12\x64\n assigned_object_provider_network\x18: \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1d\x61ssignedObjectProviderNetwork\x12?\n\x13\x61ssigned_object_rir\x18; \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x11\x61ssignedObjectRir\x12\x42\n\x14\x61ssigned_object_rack\x18< \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x12\x61ssignedObjectRack\x12\x64\n assigned_object_rack_reservation\x18= \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x1d\x61ssignedObjectRackReservation\x12O\n\x19\x61ssigned_object_rack_role\x18> \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x16\x61ssignedObjectRackRole\x12O\n\x19\x61ssigned_object_rack_type\x18? \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x16\x61ssignedObjectRackType\x12O\n\x19\x61ssigned_object_rear_port\x18@ \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x16\x61ssignedObjectRearPort\x12H\n\x16\x61ssigned_object_region\x18\x41 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x14\x61ssignedObjectRegion\x12\x42\n\x14\x61ssigned_object_role\x18\x42 \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x12\x61ssignedObjectRole\x12X\n\x1c\x61ssigned_object_route_target\x18\x43 \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x19\x61ssignedObjectRouteTarget\x12K\n\x17\x61ssigned_object_service\x18\x44 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x15\x61ssignedObjectService\x12\x42\n\x14\x61ssigned_object_site\x18\x45 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x12\x61ssignedObjectSite\x12R\n\x1a\x61ssigned_object_site_group\x18\x46 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x17\x61ssignedObjectSiteGroup\x12?\n\x13\x61ssigned_object_tag\x18G \x01(\x0b\x32\r.diode.v1.TagH\x00R\x11\x61ssignedObjectTag\x12H\n\x16\x61ssigned_object_tenant\x18H \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x14\x61ssignedObjectTenant\x12X\n\x1c\x61ssigned_object_tenant_group\x18I \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x19\x61ssignedObjectTenantGroup\x12H\n\x16\x61ssigned_object_tunnel\x18J \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x14\x61ssignedObjectTunnel\x12X\n\x1c\x61ssigned_object_tunnel_group\x18K \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x19\x61ssignedObjectTunnelGroup\x12j\n\"assigned_object_tunnel_termination\x18L \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1f\x61ssignedObjectTunnelTermination\x12\x42\n\x14\x61ssigned_object_vlan\x18M \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x12\x61ssignedObjectVlan\x12R\n\x1a\x61ssigned_object_vlan_group\x18N \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x17\x61ssignedObjectVlanGroup\x12w\n\'assigned_object_vlan_translation_policy\x18O \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R#assignedObjectVlanTranslationPolicy\x12q\n%assigned_object_vlan_translation_rule\x18P \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R!assignedObjectVlanTranslationRule\x12X\n\x1c\x61ssigned_object_vm_interface\x18Q \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x19\x61ssignedObjectVmInterface\x12?\n\x13\x61ssigned_object_vrf\x18R \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x11\x61ssignedObjectVrf\x12\x61\n\x1f\x61ssigned_object_virtual_chassis\x18S \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x1c\x61ssignedObjectVirtualChassis\x12\x61\n\x1f\x61ssigned_object_virtual_circuit\x18T \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x1c\x61ssignedObjectVirtualCircuit\x12\x83\x01\n+assigned_object_virtual_circuit_termination\x18U \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\'assignedObjectVirtualCircuitTermination\x12n\n$assigned_object_virtual_circuit_type\x18V \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R assignedObjectVirtualCircuitType\x12t\n&assigned_object_virtual_device_context\x18W \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\"assignedObjectVirtualDeviceContext\x12X\n\x1c\x61ssigned_object_virtual_disk\x18X \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x19\x61ssignedObjectVirtualDisk\x12\x61\n\x1f\x61ssigned_object_virtual_machine\x18Y \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x1c\x61ssignedObjectVirtualMachine\x12X\n\x1c\x61ssigned_object_wireless_lan\x18Z \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x19\x61ssignedObjectWirelessLan\x12h\n\"assigned_object_wireless_lan_group\x18[ \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x1e\x61ssignedObjectWirelessLanGroup\x12[\n\x1d\x61ssigned_object_wireless_link\x18\\ \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x1a\x61ssignedObjectWirelessLink\x12U\n\x1b\x61ssigned_object_custom_link\x18\x61 \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x18\x61ssignedObjectCustomLink\x12\x45\n\x15\x61ssigned_object_owner\x18\x63 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x13\x61ssignedObjectOwner\x12U\n\x1b\x61ssigned_object_owner_group\x18\x64 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x18\x61ssignedObjectOwnerGroup\x12X\n\x1c\x61ssigned_object_cable_bundle\x18\x65 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x19\x61ssignedObjectCableBundle\x12R\n\x1a\x61ssigned_object_rack_group\x18\x66 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x17\x61ssignedObjectRackGroup\x12[\n\x1d\x61ssigned_object_script_module\x18g \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x1a\x61ssignedObjectScriptModule\x12n\n$assigned_object_virtual_machine_type\x18h \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R assignedObjectVirtualMachineType\x12>\n\x04kind\x18] \x01(\tB%\xfa\x42\"r R\x06\x64\x61ngerR\x04infoR\x07successR\x07warningH\x01R\x04kind\x88\x01\x01\x12\x1a\n\x08\x63omments\x18^ \x01(\tR\x08\x63omments\x12!\n\x04tags\x18_ \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18` \x03(\x0b\x32(.diode.v1.JournalEntry.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x62 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x11\n\x0f\x61ssigned_objectB\x07\n\x05_kind\"\xf9\x03\n\x11ModuleTypeProfile\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x1b\n\x06schema\x18\x03 \x01(\tH\x01R\x06schema\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18\x06 \x03(\x0b\x32-.diode.v1.ModuleTypeProfile.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\t\n\x07_schemaB\x0b\n\t_commentsB\x08\n\x06_owner\"\xfd\x11\n\nCustomLink\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n\x07\x65nabled\x18\x02 \x01(\x08H\x00R\x07\x65nabled\x88\x01\x01\x12\x1b\n\tlink_text\x18\x03 \x01(\tR\x08linkText\x12\x19\n\x08link_url\x18\x04 \x01(\tR\x07linkUrl\x12\x1b\n\x06weight\x18\x05 \x01(\x03H\x01R\x06weight\x88\x01\x01\x12\"\n\ngroup_name\x18\x06 \x01(\tH\x02R\tgroupName\x88\x01\x01\x12\x9a\x01\n\x0c\x62utton_class\x18\x07 \x01(\tBr\xfa\x42ormR\x05\x62lackR\x04\x62lueR\x04\x63yanR\x07\x64\x65\x66\x61ultR\nghost-darkR\x04grayR\x05greenR\x06indigoR\x06orangeR\x04pinkR\x06purpleR\x03redR\x04tealR\x05whiteR\x06yellowH\x03R\x0b\x62uttonClass\x88\x01\x01\x12\"\n\nnew_window\x18\x08 \x01(\x08H\x04R\tnewWindow\x88\x01\x01\x12\xca\r\n\x0cobject_types\x18\t \x03(\tB\xa6\r\xfa\x42\xa2\r\x92\x01\x9e\r\"\x9b\rr\x98\rR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\ndcim.cableR\x10\x64\x63im.cablebundleR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x13\x65xtras.journalentryR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x0busers.ownerR\x10users.ownergroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkR\x0bobjectTypes\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x42\n\n\x08_enabledB\t\n\x07_weightB\r\n\x0b_group_nameB\x0f\n\r_button_classB\r\n\x0b_new_windowB\x08\n\x06_owner\"\xb9\x01\n\x05Owner\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12*\n\x05group\x18\x02 \x01(\x0b\x32\x14.diode.v1.OwnerGroupR\x05group\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0e\n\x0c_description\"\x92\x01\n\nOwnerGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0e\n\x0c_description\"\xad\x01\n\x0c\x44\x65viceConfig\x12\x1e\n\x07startup\x18\x01 \x01(\x0c\x42\x04\x88\xb5\x18\x00R\x07startup\x12\x1e\n\x07running\x18\x02 \x01(\x0c\x42\x04\x88\xb5\x18\x00R\x07running\x12\"\n\tcandidate\x18\x03 \x01(\x0c\x42\x04\x88\xb5\x18\x00R\tcandidate\x12\x39\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\"\xc5\x03\n\x0b\x43\x61\x62leBundle\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x05owner\x18\x03 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.CableBundle.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xd5\x03\n\tRackGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x05owner\x18\x04 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x07 \x03(\x0b\x32%.diode.v1.RackGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"]\n\x0cScriptModule\x12\x12\n\x04\x66ile\x18\x01 \x01(\tR\x04\x66ile\x12\x39\n\x08metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\"\xbb\x05\n\x12VirtualMachineType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x42\n\x10\x64\x65\x66\x61ult_platform\x18\x03 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0f\x64\x65\x66\x61ultPlatform\x88\x01\x01\x12(\n\rdefault_vcpus\x18\x04 \x01(\x01H\x01R\x0c\x64\x65\x66\x61ultVcpus\x88\x01\x01\x12*\n\x0e\x64\x65\x66\x61ult_memory\x18\x05 \x01(\x03H\x02R\rdefaultMemory\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12S\n\rcustom_fields\x18\n \x03(\x0b\x32..diode.v1.VirtualMachineType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_default_platformB\x10\n\x0e_default_vcpusB\x11\n\x0f_default_memoryB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments2N\n\x0fIngesterService\x12;\n\x06Ingest\x12\x17.diode.v1.IngestRequest\x1a\x18.diode.v1.IngestResponse:J\n\x10netbox_supported\x12\x1d.google.protobuf.FieldOptions\x18\xd1\x86\x03 \x01(\x08R\x0fnetboxSupportedB5Z3github.com/netboxlabs/diode-sdk-go/diode/v1/diodepbb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x17\x64iode/v1/ingester.proto\x12\x08\x64iode.v1\x1a google/protobuf/descriptor.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x17validate/validate.proto\"\xc1/\n\x06\x45ntity\x12\x44\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\n\xfa\x42\x07\xb2\x01\x04\x08\x01\x38\x01R\ttimestamp\x12!\n\x03\x61sn\x18\x02 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x03\x61sn\x12\x31\n\tasn_range\x18\x03 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x08\x61snRange\x12\x33\n\taggregate\x18\x04 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\taggregate\x12\'\n\x05\x63\x61\x62le\x18\x05 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x05\x63\x61\x62le\x12\x34\n\ncable_path\x18\x06 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\tcablePath\x12M\n\x11\x63\x61\x62le_termination\x18\x07 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x10\x63\x61\x62leTermination\x12-\n\x07\x63ircuit\x18\x08 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x07\x63ircuit\x12=\n\rcircuit_group\x18\t \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x0c\x63ircuitGroup\x12\\\n\x18\x63ircuit_group_assignment\x18\n \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x16\x63ircuitGroupAssignment\x12O\n\x13\x63ircuit_termination\x18\x0b \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x12\x63ircuitTermination\x12:\n\x0c\x63ircuit_type\x18\x0c \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x0b\x63ircuitType\x12-\n\x07\x63luster\x18\r \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x07\x63luster\x12=\n\rcluster_group\x18\x0e \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x0c\x63lusterGroup\x12:\n\x0c\x63luster_type\x18\x0f \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x0b\x63lusterType\x12:\n\x0c\x63onsole_port\x18\x10 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x0b\x63onsolePort\x12M\n\x13\x63onsole_server_port\x18\x11 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x11\x63onsoleServerPort\x12-\n\x07\x63ontact\x18\x12 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x07\x63ontact\x12L\n\x12\x63ontact_assignment\x18\x13 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x11\x63ontactAssignment\x12=\n\rcontact_group\x18\x14 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x0c\x63ontactGroup\x12:\n\x0c\x63ontact_role\x18\x15 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x0b\x63ontactRole\x12*\n\x06\x64\x65vice\x18\x16 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x06\x64\x65vice\x12\x34\n\ndevice_bay\x18\x17 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\tdeviceBay\x12\x37\n\x0b\x64\x65vice_role\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\ndeviceRole\x12\x37\n\x0b\x64\x65vice_type\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\ndeviceType\x12\x34\n\nfhrp_group\x18\x1a \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\tfhrpGroup\x12S\n\x15\x66hrp_group_assignment\x18\x1b \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x13\x66hrpGroupAssignment\x12\x34\n\nfront_port\x18\x1c \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\tfrontPort\x12\x34\n\nike_policy\x18\x1d \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\tikePolicy\x12:\n\x0cike_proposal\x18\x1e \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x0bikeProposal\x12\x34\n\nip_address\x18\x1f \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\tipAddress\x12.\n\x08ip_range\x18 \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x07ipRange\x12;\n\rip_sec_policy\x18! \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x0bipSecPolicy\x12>\n\x0eip_sec_profile\x18\" \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x0cipSecProfile\x12\x41\n\x0fip_sec_proposal\x18# \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\ripSecProposal\x12\x33\n\tinterface\x18$ \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\tinterface\x12@\n\x0einventory_item\x18% \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\rinventoryItem\x12M\n\x13inventory_item_role\x18& \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x11inventoryItemRole\x12\'\n\x05l2vpn\x18\' \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x05l2vpn\x12I\n\x11l2vpn_termination\x18( \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x10l2vpnTermination\x12\x30\n\x08location\x18) \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x08location\x12\x37\n\x0bmac_address\x18* \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\nmacAddress\x12<\n\x0cmanufacturer\x18+ \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x0cmanufacturer\x12*\n\x06module\x18, \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x12\x34\n\nmodule_bay\x18- \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\tmoduleBay\x12\x37\n\x0bmodule_type\x18. \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\nmoduleType\x12\x30\n\x08platform\x18/ \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x08platform\x12\x34\n\npower_feed\x18\x30 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\tpowerFeed\x12:\n\x0cpower_outlet\x18\x31 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x0bpowerOutlet\x12\x37\n\x0bpower_panel\x18\x32 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\npowerPanel\x12\x34\n\npower_port\x18\x33 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\tpowerPort\x12*\n\x06prefix\x18\x34 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x06prefix\x12\x30\n\x08provider\x18\x35 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x08provider\x12\x46\n\x10provider_account\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x12\x46\n\x10provider_network\x18\x37 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x0fproviderNetwork\x12!\n\x03rir\x18\x38 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x03rir\x12$\n\x04rack\x18\x39 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x04rack\x12\x46\n\x10rack_reservation\x18: \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x0frackReservation\x12\x31\n\track_role\x18; \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x08rackRole\x12\x31\n\track_type\x18< \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x08rackType\x12\x31\n\trear_port\x18= \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x08rearPort\x12*\n\x06region\x18> \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x06region\x12$\n\x04role\x18? \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x04role\x12:\n\x0croute_target\x18@ \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x0brouteTarget\x12-\n\x07service\x18\x41 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x07service\x12$\n\x04site\x18\x42 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x04site\x12\x34\n\nsite_group\x18\x43 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\tsiteGroup\x12!\n\x03tag\x18\x44 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x03tag\x12*\n\x06tenant\x18\x45 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x12:\n\x0ctenant_group\x18\x46 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x0btenantGroup\x12*\n\x06tunnel\x18G \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x06tunnel\x12:\n\x0ctunnel_group\x18H \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x0btunnelGroup\x12L\n\x12tunnel_termination\x18I \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x11tunnelTermination\x12$\n\x04vlan\x18J \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x04vlan\x12\x34\n\nvlan_group\x18K \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\tvlanGroup\x12Y\n\x17vlan_translation_policy\x18L \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x15vlanTranslationPolicy\x12S\n\x15vlan_translation_rule\x18M \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x13vlanTranslationRule\x12:\n\x0cvm_interface\x18N \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x0bvmInterface\x12!\n\x03vrf\x18O \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x03vrf\x12\x43\n\x0fvirtual_chassis\x18P \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x0evirtualChassis\x12\x43\n\x0fvirtual_circuit\x18Q \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x0evirtualCircuit\x12\x65\n\x1bvirtual_circuit_termination\x18R \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x19virtualCircuitTermination\x12P\n\x14virtual_circuit_type\x18S \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x12virtualCircuitType\x12V\n\x16virtual_device_context\x18T \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x14virtualDeviceContext\x12:\n\x0cvirtual_disk\x18U \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x0bvirtualDisk\x12\x43\n\x0fvirtual_machine\x18V \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x0evirtualMachine\x12:\n\x0cwireless_lan\x18W \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x0bwirelessLan\x12J\n\x12wireless_lan_group\x18X \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x10wirelessLanGroup\x12=\n\rwireless_link\x18Y \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x0cwirelessLink\x12:\n\x0c\x63ustom_field\x18Z \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x0b\x63ustomField\x12W\n\x17\x63ustom_field_choice_set\x18[ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x14\x63ustomFieldChoiceSet\x12=\n\rjournal_entry\x18\\ \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x0cjournalEntry\x12M\n\x13module_type_profile\x18] \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x11moduleTypeProfile\x12\x37\n\x0b\x63ustom_link\x18^ \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\ncustomLink\x12\'\n\x05owner\x18_ \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x05owner\x12\x37\n\x0bowner_group\x18` \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\nownerGroup\x12\x43\n\rdevice_config\x18\x61 \x01(\x0b\x32\x16.diode.v1.DeviceConfigB\x04\x88\xb5\x18\x00H\x00R\x0c\x64\x65viceConfig\x12:\n\x0c\x63\x61\x62le_bundle\x18\x62 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x0b\x63\x61\x62leBundle\x12\x34\n\nrack_group\x18\x63 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\trackGroup\x12=\n\rscript_module\x18\x64 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x0cscriptModule\x12P\n\x14virtual_machine_type\x18\x65 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x12virtualMachineType\x12$\n\x04user\x18\x66 \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\x04userB\x08\n\x06\x65ntity\"\x99\x03\n\rIngestRequest\x12\"\n\x06stream\x18\x01 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x06stream\x12\x39\n\x08\x65ntities\x18\x02 \x03(\x0b\x32\x10.diode.v1.EntityB\x0b\xfa\x42\x08\x92\x01\x05\x08\x01\x10\xe8\x07R\x08\x65ntities\x12\x18\n\x02id\x18\x03 \x01(\tB\x08\xfa\x42\x05r\x03\xb0\x01\x01R\x02id\x12\x36\n\x11producer_app_name\x18\x04 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x0fproducerAppName\x12<\n\x14producer_app_version\x18\x05 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x12producerAppVersion\x12%\n\x08sdk_name\x18\x06 \x01(\tB\n\xfa\x42\x07r\x05\x10\x01\x18\xff\x01R\x07sdkName\x12=\n\x0bsdk_version\x18\x07 \x01(\tB\x1c\xfa\x42\x19r\x17\x32\x15^(\\d)+\\.(\\d)+\\.(\\d)+$R\nsdkVersion\x12\x33\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructR\x08metadata\"(\n\x0eIngestResponse\x12\x16\n\x06\x65rrors\x18\x01 \x03(\tR\x06\x65rrors\"\xf3\x04\n\x03\x41SN\x12\x10\n\x03\x61sn\x18\x01 \x01(\x03R\x03\x61sn\x12$\n\x03rir\x18\x02 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x03rir\x88\x01\x01\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x44\n\rcustom_fields\x18\x07 \x03(\x0b\x32\x1f.diode.v1.ASN.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x12$\n\x05sites\x18\n \x03(\x0b\x32\x0e.diode.v1.SiteR\x05sites\x12\'\n\x04role\x18\x0b \x01(\x0b\x32\x0e.diode.v1.RoleH\x05R\x04role\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x06\n\x04_rirB\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_ownerB\x07\n\x05_role\"\xd6\x04\n\x08\x41SNRange\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x1f\n\x03rir\x18\x03 \x01(\x0b\x32\r.diode.v1.RIRR\x03rir\x12\x14\n\x05start\x18\x04 \x01(\x03R\x05start\x12\x10\n\x03\x65nd\x18\x05 \x01(\x03R\x03\x65nd\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\t \x03(\x0b\x32$.diode.v1.ASNRange.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0c \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xef\x04\n\tAggregate\x12\x16\n\x06prefix\x18\x01 \x01(\tR\x06prefix\x12\x1f\n\x03rir\x18\x02 \x01(\x0b\x32\r.diode.v1.RIRR\x03rir\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12>\n\ndate_added\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x01R\tdateAdded\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x06 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x07 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x08 \x03(\x0b\x32%.diode.v1.Aggregate.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\r\n\x0b_date_addedB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x89\r\n\x05\x43\x61\x62le\x12\xa1\x02\n\x04type\x18\x01 \x01(\tB\x87\x02\xfa\x42\x83\x02r\x80\x02R\x03\x61ocR\x04\x63\x61t3R\x04\x63\x61t5R\x05\x63\x61t5eR\x04\x63\x61t6R\x05\x63\x61t6aR\x04\x63\x61t7R\x05\x63\x61t7aR\x04\x63\x61t8R\x07\x63oaxialR\ndac-activeR\x0b\x64\x61\x63-passiveR\x07lmr-100R\x07lmr-200R\x07lmr-400R\x03mmfR\x07mmf-om1R\x07mmf-om2R\x07mmf-om3R\x07mmf-om4R\x07mmf-om5R\x0bmrj21-trunkR\x05powerR\x05rg-11R\x06rg-213R\x05rg-59R\x04rg-6R\x05rg-62R\x04rg-8R\x03smfR\x07smf-os1R\x07smf-os2R\x03usbH\x00R\x04type\x88\x01\x01\x12>\n\x0e\x61_terminations\x18\x02 \x03(\x0b\x32\x17.diode.v1.GenericObjectR\raTerminations\x12>\n\x0e\x62_terminations\x18\x03 \x03(\x0b\x32\x17.diode.v1.GenericObjectR\rbTerminations\x12G\n\x06status\x18\x04 \x01(\tB*\xfa\x42\'r%R\tconnectedR\x0f\x64\x65\x63ommissioningR\x07plannedH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x19\n\x05label\x18\x06 \x01(\tH\x03R\x05label\x88\x01\x01\x12\x19\n\x05\x63olor\x18\x07 \x01(\tH\x04R\x05\x63olor\x88\x01\x01\x12\x1b\n\x06length\x18\x08 \x01(\x01H\x05R\x06length\x88\x01\x01\x12\x42\n\x0blength_unit\x18\t \x01(\tB\x1c\xfa\x42\x19r\x17R\x02\x63mR\x02\x66tR\x02inR\x02kmR\x01mR\x02miH\x06R\nlengthUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\n \x01(\tH\x07R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x08R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x46\n\rcustom_fields\x18\r \x03(\x0b\x32!.diode.v1.Cable.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12\x95\x03\n\x07profile\x18\x0f \x01(\tB\xf5\x02\xfa\x42\xf1\x02r\xee\x02R\x12\x62reakout-1c2p-2c1pR\x12\x62reakout-1c4p-4c1pR\x12\x62reakout-1c6p-6c1pR\x1a\x62reakout-2c4p-8c1p-shuffleR\x0csingle-1c12pR\x0csingle-1c16pR\x0bsingle-1c1pR\x0bsingle-1c2pR\x0bsingle-1c4pR\x0bsingle-1c6pR\x0bsingle-1c8pR\x0btrunk-2c12pR\ntrunk-2c1pR\ntrunk-2c2pR\ntrunk-2c4pR\x12trunk-2c4p-shuffleR\ntrunk-2c6pR\ntrunk-2c8pR\ntrunk-4c1pR\ntrunk-4c2pR\ntrunk-4c4pR\x12trunk-4c4p-shuffleR\ntrunk-4c6pR\ntrunk-4c8pR\ntrunk-8c4pH\tR\x07profile\x88\x01\x01\x12*\n\x05owner\x18\x10 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x12\x32\n\x06\x62undle\x18\x11 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x0bR\x06\x62undle\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_typeB\t\n\x07_statusB\t\n\x07_tenantB\x08\n\x06_labelB\x08\n\x06_colorB\t\n\x07_lengthB\x0e\n\x0c_length_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\n\n\x08_profileB\x08\n\x06_ownerB\t\n\x07_bundle\"\xd9\x01\n\tCablePath\x12 \n\tis_active\x18\x01 \x01(\x08H\x00R\x08isActive\x88\x01\x01\x12$\n\x0bis_complete\x18\x02 \x01(\x08H\x01R\nisComplete\x88\x01\x01\x12\x1e\n\x08is_split\x18\x03 \x01(\x08H\x02R\x07isSplit\x88\x01\x01\x12\x39\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0c\n\n_is_activeB\x0e\n\x0c_is_completeB\x0b\n\t_is_split\"\x9e\x07\n\x10\x43\x61\x62leTermination\x12%\n\x05\x63\x61\x62le\x18\x01 \x01(\x0b\x32\x0f.diode.v1.CableR\x05\x63\x61\x62le\x12(\n\tcable_end\x18\x02 \x01(\tB\x0b\xfa\x42\x08r\x06R\x01\x41R\x01\x42R\x08\x63\x61\x62leEnd\x12\x66\n\x1ftermination_circuit_termination\x18\x03 \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x1dterminationCircuitTermination\x12Q\n\x18termination_console_port\x18\x04 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x16terminationConsolePort\x12\x64\n\x1ftermination_console_server_port\x18\x05 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1cterminationConsoleServerPort\x12K\n\x16termination_front_port\x18\x06 \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x14terminationFrontPort\x12J\n\x15termination_interface\x18\x07 \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x14terminationInterface\x12K\n\x16termination_power_feed\x18\x08 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x14terminationPowerFeed\x12Q\n\x18termination_power_outlet\x18\t \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x16terminationPowerOutlet\x12K\n\x16termination_power_port\x18\n \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x14terminationPowerPort\x12H\n\x15termination_rear_port\x18\x0b \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x13terminationRearPort\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\r\n\x0btermination\"\xd7\t\n\x07\x43ircuit\x12\x10\n\x03\x63id\x18\x01 \x01(\tR\x03\x63id\x12.\n\x08provider\x18\x02 \x01(\x0b\x32\x12.diode.v1.ProviderR\x08provider\x12I\n\x10provider_account\x18\x03 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x88\x01\x01\x12)\n\x04type\x18\x04 \x01(\x0b\x32\x15.diode.v1.CircuitTypeR\x04type\x12j\n\x06status\x18\x05 \x01(\tBM\xfa\x42JrHR\x06\x61\x63tiveR\x0e\x64\x65\x63ommissionedR\x0e\x64\x65provisioningR\x07offlineR\x07plannedR\x0cprovisioningH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x42\n\x0cinstall_date\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x03R\x0binstallDate\x88\x01\x01\x12J\n\x10termination_date\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x04R\x0fterminationDate\x88\x01\x01\x12$\n\x0b\x63ommit_rate\x18\t \x01(\x03H\x05R\ncommitRate\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\n \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x64istance\x18\x0b \x01(\x01H\x07R\x08\x64istance\x88\x01\x01\x12>\n\rdistance_unit\x18\x0c \x01(\tB\x14\xfa\x42\x11r\x0fR\x02\x66tR\x02kmR\x01mR\x02miH\x08R\x0c\x64istanceUnit\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\r \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0e \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x42\n\x0b\x61ssignments\x18\x0f \x03(\x0b\x32 .diode.v1.CircuitGroupAssignmentR\x0b\x61ssignments\x12H\n\rcustom_fields\x18\x10 \x03(\x0b\x32#.diode.v1.Circuit.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_provider_accountB\t\n\x07_statusB\t\n\x07_tenantB\x0f\n\r_install_dateB\x13\n\x11_termination_dateB\x0e\n\x0c_commit_rateB\x0e\n\x0c_descriptionB\x0b\n\t_distanceB\x10\n\x0e_distance_unitB\x0b\n\t_commentsB\x08\n\x06_owner\"\x95\x04\n\x0c\x43ircuitGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12-\n\x06tenant\x18\x04 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x06 \x03(\x0b\x32(.diode.v1.CircuitGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\t\n\x07_tenantB\x08\n\x06_ownerB\x0b\n\t_comments\"\x99\x03\n\x16\x43ircuitGroupAssignment\x12,\n\x05group\x18\x01 \x01(\x0b\x32\x16.diode.v1.CircuitGroupR\x05group\x12:\n\x0emember_circuit\x18\x02 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\rmemberCircuit\x12P\n\x16member_virtual_circuit\x18\x03 \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x14memberVirtualCircuit\x12N\n\x08priority\x18\x04 \x01(\tB-\xfa\x42*r(R\x08inactiveR\x07primaryR\tsecondaryR\x08tertiaryH\x01R\x08priority\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x08\n\x06memberB\x0b\n\t_priority\"\xc7\x08\n\x12\x43ircuitTermination\x12+\n\x07\x63ircuit\x18\x01 \x01(\x0b\x32\x11.diode.v1.CircuitR\x07\x63ircuit\x12(\n\tterm_side\x18\x02 \x01(\tB\x0b\xfa\x42\x08r\x06R\x01\x41R\x01ZR\x08termSide\x12G\n\x14termination_location\x18\x03 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x13terminationLocation\x12]\n\x1ctermination_provider_network\x18\x04 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1aterminationProviderNetwork\x12\x41\n\x12termination_region\x18\x05 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x11terminationRegion\x12;\n\x10termination_site\x18\x06 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x0fterminationSite\x12K\n\x16termination_site_group\x18\x07 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x14terminationSiteGroup\x12\"\n\nport_speed\x18\x08 \x01(\x03H\x01R\tportSpeed\x88\x01\x01\x12*\n\x0eupstream_speed\x18\t \x01(\x03H\x02R\rupstreamSpeed\x88\x01\x01\x12$\n\x0bxconnect_id\x18\n \x01(\tH\x03R\nxconnectId\x88\x01\x01\x12\x1c\n\x07pp_info\x18\x0b \x01(\tH\x04R\x06ppInfo\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0c \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\r \x01(\x08H\x06R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\x0e \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12S\n\rcustom_fields\x18\x0f \x03(\x0b\x32..diode.v1.CircuitTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x10 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0bterminationB\r\n\x0b_port_speedB\x11\n\x0f_upstream_speedB\x0e\n\x0c_xconnect_idB\n\n\x08_pp_infoB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connected\"\xfe\x03\n\x0b\x43ircuitType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.CircuitType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xb1\x07\n\x07\x43luster\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12)\n\x04type\x18\x02 \x01(\x0b\x32\x15.diode.v1.ClusterTypeR\x04type\x12\x31\n\x05group\x18\x03 \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x01R\x05group\x88\x01\x01\x12V\n\x06status\x18\x04 \x01(\tB9\xfa\x42\x36r4R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x07offlineR\x07plannedR\x07stagingH\x02R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x03R\x06tenant\x88\x01\x01\x12;\n\x0escope_location\x18\x06 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12\x35\n\x0cscope_region\x18\x07 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\t \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12%\n\x0b\x64\x65scription\x18\n \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12H\n\rcustom_fields\x18\r \x03(\x0b\x32#.diode.v1.Cluster.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x08\n\x06_groupB\t\n\x07_statusB\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xdb\x03\n\x0c\x43lusterGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x05 \x03(\x0b\x32(.diode.v1.ClusterGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xd9\x03\n\x0b\x43lusterType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x05 \x03(\x0b\x32\'.diode.v1.ClusterType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xde\x06\n\x0b\x43onsolePort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xab\x01\n\x04type\x18\x05 \x01(\tB\x91\x01\xfa\x42\x8d\x01r\x8a\x01R\x05\x64\x62-25R\x04\x64\x65-9R\nmini-din-8R\x05otherR\x05rj-11R\x05rj-12R\x05rj-45R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bH\x02R\x04type\x88\x01\x01\x12<\n\x05speed\x18\x06 \x01(\x03\x42!\xfa\x42\x1e\"\x1c\x30\xb0\t0\xe0\x12\x30\xc0%0\x80K0\x80\x96\x01\x30\x80\xac\x02\x30\x80\xc2\x03\x30\x80\x84\x07H\x03R\x05speed\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\x08 \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\n \x03(\x0b\x32\'.diode.v1.ConsolePort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x08\n\x06_speedB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\xea\x06\n\x11\x43onsoleServerPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xab\x01\n\x04type\x18\x05 \x01(\tB\x91\x01\xfa\x42\x8d\x01r\x8a\x01R\x05\x64\x62-25R\x04\x64\x65-9R\nmini-din-8R\x05otherR\x05rj-11R\x05rj-12R\x05rj-45R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bH\x02R\x04type\x88\x01\x01\x12<\n\x05speed\x18\x06 \x01(\x03\x42!\xfa\x42\x1e\"\x1c\x30\xb0\t0\xe0\x12\x30\xc0%0\x80K0\x80\x96\x01\x30\x80\xac\x02\x30\x80\xc2\x03\x30\x80\x84\x07H\x03R\x05speed\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\x08 \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18\n \x03(\x0b\x32-.diode.v1.ConsoleServerPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x08\n\x06_speedB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\xea\x05\n\x07\x43ontact\x12\x35\n\x05group\x18\x01 \x01(\x0b\x32\x16.diode.v1.ContactGroupB\x02\x18\x01H\x00R\x05group\x88\x01\x01\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x19\n\x05title\x18\x03 \x01(\tH\x01R\x05title\x88\x01\x01\x12\x19\n\x05phone\x18\x04 \x01(\tH\x02R\x05phone\x88\x01\x01\x12\x19\n\x05\x65mail\x18\x05 \x01(\tH\x03R\x05\x65mail\x88\x01\x01\x12\x1d\n\x07\x61\x64\x64ress\x18\x06 \x01(\tH\x04R\x07\x61\x64\x64ress\x88\x01\x01\x12\x17\n\x04link\x18\x07 \x01(\tH\x05R\x04link\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x07R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12H\n\rcustom_fields\x18\x0b \x03(\x0b\x32#.diode.v1.Contact.CustomFieldsEntryR\x0c\x63ustomFields\x12.\n\x06groups\x18\x0c \x03(\x0b\x32\x16.diode.v1.ContactGroupR\x06groups\x12\x39\n\x08metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0e \x01(\x0b\x32\x0f.diode.v1.OwnerH\x08R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_groupB\x08\n\x06_titleB\x08\n\x06_phoneB\x08\n\x06_emailB\n\n\x08_addressB\x07\n\x05_linkB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xa7<\n\x11\x43ontactAssignment\x12.\n\nobject_asn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\tobjectAsn\x12>\n\x10object_asn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x0eobjectAsnRange\x12@\n\x10object_aggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x0fobjectAggregate\x12\x34\n\x0cobject_cable\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x0bobjectCable\x12\x41\n\x11object_cable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x0fobjectCablePath\x12Z\n\x18object_cable_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x16objectCableTermination\x12:\n\x0eobject_circuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\robjectCircuit\x12J\n\x14object_circuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x12objectCircuitGroup\x12i\n\x1fobject_circuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x1cobjectCircuitGroupAssignment\x12\\\n\x1aobject_circuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x18objectCircuitTermination\x12G\n\x13object_circuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x11objectCircuitType\x12:\n\x0eobject_cluster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\robjectCluster\x12J\n\x14object_cluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x12objectClusterGroup\x12G\n\x13object_cluster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x11objectClusterType\x12G\n\x13object_console_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x11objectConsolePort\x12Z\n\x1aobject_console_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x17objectConsoleServerPort\x12:\n\x0eobject_contact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\robjectContact\x12Y\n\x19object_contact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x17objectContactAssignment\x12J\n\x14object_contact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x12objectContactGroup\x12G\n\x13object_contact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x11objectContactRole\x12\x37\n\robject_device\x18\x15 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x0cobjectDevice\x12\x41\n\x11object_device_bay\x18\x16 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x0fobjectDeviceBay\x12\x44\n\x12object_device_role\x18\x17 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x10objectDeviceRole\x12\x44\n\x12object_device_type\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x10objectDeviceType\x12\x41\n\x11object_fhrp_group\x18\x19 \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x0fobjectFhrpGroup\x12`\n\x1cobject_fhrp_group_assignment\x18\x1a \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x19objectFhrpGroupAssignment\x12\x41\n\x11object_front_port\x18\x1b \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x0fobjectFrontPort\x12\x41\n\x11object_ike_policy\x18\x1c \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x0fobjectIkePolicy\x12G\n\x13object_ike_proposal\x18\x1d \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x11objectIkeProposal\x12\x41\n\x11object_ip_address\x18\x1e \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x0fobjectIpAddress\x12;\n\x0fobject_ip_range\x18\x1f \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\robjectIpRange\x12H\n\x14object_ip_sec_policy\x18 \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x11objectIpSecPolicy\x12K\n\x15object_ip_sec_profile\x18! \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x12objectIpSecProfile\x12N\n\x16object_ip_sec_proposal\x18\" \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x13objectIpSecProposal\x12@\n\x10object_interface\x18# \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x0fobjectInterface\x12M\n\x15object_inventory_item\x18$ \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x13objectInventoryItem\x12Z\n\x1aobject_inventory_item_role\x18% \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x17objectInventoryItemRole\x12\x34\n\x0cobject_l2vpn\x18& \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x0bobjectL2vpn\x12V\n\x18object_l2vpn_termination\x18\' \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x16objectL2vpnTermination\x12=\n\x0fobject_location\x18( \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x0eobjectLocation\x12\x44\n\x12object_mac_address\x18) \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x10objectMacAddress\x12I\n\x13object_manufacturer\x18* \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x12objectManufacturer\x12\x37\n\robject_module\x18+ \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x0cobjectModule\x12\x41\n\x11object_module_bay\x18, \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x0fobjectModuleBay\x12\x44\n\x12object_module_type\x18- \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x10objectModuleType\x12=\n\x0fobject_platform\x18. \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0eobjectPlatform\x12\x41\n\x11object_power_feed\x18/ \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x0fobjectPowerFeed\x12G\n\x13object_power_outlet\x18\x30 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x11objectPowerOutlet\x12\x44\n\x12object_power_panel\x18\x31 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x10objectPowerPanel\x12\x41\n\x11object_power_port\x18\x32 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x0fobjectPowerPort\x12\x37\n\robject_prefix\x18\x33 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x0cobjectPrefix\x12=\n\x0fobject_provider\x18\x34 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x0eobjectProvider\x12S\n\x17object_provider_account\x18\x35 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x15objectProviderAccount\x12S\n\x17object_provider_network\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x15objectProviderNetwork\x12.\n\nobject_rir\x18\x37 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\tobjectRir\x12\x31\n\x0bobject_rack\x18\x38 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\nobjectRack\x12S\n\x17object_rack_reservation\x18\x39 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x15objectRackReservation\x12>\n\x10object_rack_role\x18: \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x0eobjectRackRole\x12>\n\x10object_rack_type\x18; \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x0eobjectRackType\x12>\n\x10object_rear_port\x18< \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x0eobjectRearPort\x12\x37\n\robject_region\x18= \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0cobjectRegion\x12\x31\n\x0bobject_role\x18> \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\nobjectRole\x12G\n\x13object_route_target\x18? \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x11objectRouteTarget\x12:\n\x0eobject_service\x18@ \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\robjectService\x12\x31\n\x0bobject_site\x18\x41 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\nobjectSite\x12\x41\n\x11object_site_group\x18\x42 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0fobjectSiteGroup\x12.\n\nobject_tag\x18\x43 \x01(\x0b\x32\r.diode.v1.TagH\x00R\tobjectTag\x12\x37\n\robject_tenant\x18\x44 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x0cobjectTenant\x12G\n\x13object_tenant_group\x18\x45 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x11objectTenantGroup\x12\x37\n\robject_tunnel\x18\x46 \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x0cobjectTunnel\x12G\n\x13object_tunnel_group\x18G \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x11objectTunnelGroup\x12Y\n\x19object_tunnel_termination\x18H \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x17objectTunnelTermination\x12\x31\n\x0bobject_vlan\x18I \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\nobjectVlan\x12\x41\n\x11object_vlan_group\x18J \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x0fobjectVlanGroup\x12\x66\n\x1eobject_vlan_translation_policy\x18K \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x1bobjectVlanTranslationPolicy\x12`\n\x1cobject_vlan_translation_rule\x18L \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x19objectVlanTranslationRule\x12G\n\x13object_vm_interface\x18M \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x11objectVmInterface\x12.\n\nobject_vrf\x18N \x01(\x0b\x32\r.diode.v1.VRFH\x00R\tobjectVrf\x12P\n\x16object_virtual_chassis\x18O \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x14objectVirtualChassis\x12P\n\x16object_virtual_circuit\x18P \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x14objectVirtualCircuit\x12r\n\"object_virtual_circuit_termination\x18Q \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x1fobjectVirtualCircuitTermination\x12]\n\x1bobject_virtual_circuit_type\x18R \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x18objectVirtualCircuitType\x12\x63\n\x1dobject_virtual_device_context\x18S \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1aobjectVirtualDeviceContext\x12G\n\x13object_virtual_disk\x18T \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x11objectVirtualDisk\x12P\n\x16object_virtual_machine\x18U \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x14objectVirtualMachine\x12G\n\x13object_wireless_lan\x18V \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x11objectWirelessLan\x12W\n\x19object_wireless_lan_group\x18W \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x16objectWirelessLanGroup\x12J\n\x14object_wireless_link\x18X \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x12objectWirelessLink\x12G\n\x13object_custom_field\x18^ \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x11objectCustomField\x12\x64\n\x1eobject_custom_field_choice_set\x18_ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1aobjectCustomFieldChoiceSet\x12J\n\x14object_journal_entry\x18` \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x12objectJournalEntry\x12Z\n\x1aobject_module_type_profile\x18\x61 \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x17objectModuleTypeProfile\x12\x44\n\x12object_custom_link\x18\x62 \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x10objectCustomLink\x12\x34\n\x0cobject_owner\x18\x64 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x0bobjectOwner\x12\x44\n\x12object_owner_group\x18\x65 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x10objectOwnerGroup\x12G\n\x13object_cable_bundle\x18\x66 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x11objectCableBundle\x12\x41\n\x11object_rack_group\x18g \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x0fobjectRackGroup\x12J\n\x14object_script_module\x18h \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x12objectScriptModule\x12]\n\x1bobject_virtual_machine_type\x18i \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x18objectVirtualMachineType\x12\x31\n\x0bobject_user\x18j \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\nobjectUser\x12+\n\x07\x63ontact\x18Y \x01(\x0b\x32\x11.diode.v1.ContactR\x07\x63ontact\x12.\n\x04role\x18Z \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x01R\x04role\x88\x01\x01\x12N\n\x08priority\x18[ \x01(\tB-\xfa\x42*r(R\x08inactiveR\x07primaryR\tsecondaryR\x08tertiaryH\x02R\x08priority\x88\x01\x01\x12!\n\x04tags\x18\\ \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18] \x03(\x0b\x32-.diode.v1.ContactAssignment.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x63 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06objectB\x07\n\x05_roleB\x0b\n\t_priority\"\x9b\x04\n\x0c\x43ontactGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x33\n\x06parent\x18\x03 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x06 \x03(\x0b\x32(.diode.v1.ContactGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd9\x03\n\x0b\x43ontactRole\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x05 \x03(\x0b\x32\'.diode.v1.ContactRole.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xca.\n\x1a\x43ustomFieldObjectReference\x12!\n\x03\x61sn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x03\x61sn\x12\x31\n\tasn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x08\x61snRange\x12\x33\n\taggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\taggregate\x12\'\n\x05\x63\x61\x62le\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x05\x63\x61\x62le\x12\x34\n\ncable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\tcablePath\x12M\n\x11\x63\x61\x62le_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x10\x63\x61\x62leTermination\x12-\n\x07\x63ircuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x07\x63ircuit\x12=\n\rcircuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x0c\x63ircuitGroup\x12\\\n\x18\x63ircuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x16\x63ircuitGroupAssignment\x12O\n\x13\x63ircuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x12\x63ircuitTermination\x12:\n\x0c\x63ircuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x0b\x63ircuitType\x12-\n\x07\x63luster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x07\x63luster\x12=\n\rcluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x0c\x63lusterGroup\x12:\n\x0c\x63luster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x0b\x63lusterType\x12:\n\x0c\x63onsole_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x0b\x63onsolePort\x12M\n\x13\x63onsole_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x11\x63onsoleServerPort\x12-\n\x07\x63ontact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x07\x63ontact\x12L\n\x12\x63ontact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x11\x63ontactAssignment\x12=\n\rcontact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x0c\x63ontactGroup\x12:\n\x0c\x63ontact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x0b\x63ontactRole\x12*\n\x06\x64\x65vice\x18\x15 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x06\x64\x65vice\x12\x34\n\ndevice_bay\x18\x16 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\tdeviceBay\x12\x37\n\x0b\x64\x65vice_role\x18\x17 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\ndeviceRole\x12\x37\n\x0b\x64\x65vice_type\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\ndeviceType\x12\x34\n\nfhrp_group\x18\x19 \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\tfhrpGroup\x12S\n\x15\x66hrp_group_assignment\x18\x1a \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x13\x66hrpGroupAssignment\x12\x34\n\nfront_port\x18\x1b \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\tfrontPort\x12\x34\n\nike_policy\x18\x1c \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\tikePolicy\x12:\n\x0cike_proposal\x18\x1d \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x0bikeProposal\x12\x34\n\nip_address\x18\x1e \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\tipAddress\x12.\n\x08ip_range\x18\x1f \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x07ipRange\x12;\n\rip_sec_policy\x18 \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x0bipSecPolicy\x12>\n\x0eip_sec_profile\x18! \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x0cipSecProfile\x12\x41\n\x0fip_sec_proposal\x18\" \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\ripSecProposal\x12\x33\n\tinterface\x18# \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\tinterface\x12@\n\x0einventory_item\x18$ \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\rinventoryItem\x12M\n\x13inventory_item_role\x18% \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x11inventoryItemRole\x12\'\n\x05l2vpn\x18& \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x05l2vpn\x12I\n\x11l2vpn_termination\x18\' \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x10l2vpnTermination\x12\x30\n\x08location\x18( \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x08location\x12\x37\n\x0bmac_address\x18) \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\nmacAddress\x12<\n\x0cmanufacturer\x18* \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x0cmanufacturer\x12*\n\x06module\x18+ \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x12\x34\n\nmodule_bay\x18, \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\tmoduleBay\x12\x37\n\x0bmodule_type\x18- \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\nmoduleType\x12\x30\n\x08platform\x18. \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x08platform\x12\x34\n\npower_feed\x18/ \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\tpowerFeed\x12:\n\x0cpower_outlet\x18\x30 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x0bpowerOutlet\x12\x37\n\x0bpower_panel\x18\x31 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\npowerPanel\x12\x34\n\npower_port\x18\x32 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\tpowerPort\x12*\n\x06prefix\x18\x33 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x06prefix\x12\x30\n\x08provider\x18\x34 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x08provider\x12\x46\n\x10provider_account\x18\x35 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x12\x46\n\x10provider_network\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x0fproviderNetwork\x12!\n\x03rir\x18\x37 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x03rir\x12$\n\x04rack\x18\x38 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x04rack\x12\x46\n\x10rack_reservation\x18\x39 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x0frackReservation\x12\x31\n\track_role\x18: \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x08rackRole\x12\x31\n\track_type\x18; \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x08rackType\x12\x31\n\trear_port\x18< \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x08rearPort\x12*\n\x06region\x18= \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x06region\x12$\n\x04role\x18> \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x04role\x12:\n\x0croute_target\x18? \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x0brouteTarget\x12-\n\x07service\x18@ \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x07service\x12$\n\x04site\x18\x41 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x04site\x12\x34\n\nsite_group\x18\x42 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\tsiteGroup\x12!\n\x03tag\x18\x43 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x03tag\x12*\n\x06tenant\x18\x44 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x12:\n\x0ctenant_group\x18\x45 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x0btenantGroup\x12*\n\x06tunnel\x18\x46 \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x06tunnel\x12:\n\x0ctunnel_group\x18G \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x0btunnelGroup\x12L\n\x12tunnel_termination\x18H \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x11tunnelTermination\x12$\n\x04vlan\x18I \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x04vlan\x12\x34\n\nvlan_group\x18J \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\tvlanGroup\x12Y\n\x17vlan_translation_policy\x18K \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x15vlanTranslationPolicy\x12S\n\x15vlan_translation_rule\x18L \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x13vlanTranslationRule\x12:\n\x0cvm_interface\x18M \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x0bvmInterface\x12!\n\x03vrf\x18N \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x03vrf\x12\x43\n\x0fvirtual_chassis\x18O \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x0evirtualChassis\x12\x43\n\x0fvirtual_circuit\x18P \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x0evirtualCircuit\x12\x65\n\x1bvirtual_circuit_termination\x18Q \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x19virtualCircuitTermination\x12P\n\x14virtual_circuit_type\x18R \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x12virtualCircuitType\x12V\n\x16virtual_device_context\x18S \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x14virtualDeviceContext\x12:\n\x0cvirtual_disk\x18T \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x0bvirtualDisk\x12\x43\n\x0fvirtual_machine\x18U \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x0evirtualMachine\x12:\n\x0cwireless_lan\x18V \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x0bwirelessLan\x12J\n\x12wireless_lan_group\x18W \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x10wirelessLanGroup\x12=\n\rwireless_link\x18X \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x0cwirelessLink\x12:\n\x0c\x63ustom_field\x18Y \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x0b\x63ustomField\x12W\n\x17\x63ustom_field_choice_set\x18Z \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x14\x63ustomFieldChoiceSet\x12=\n\rjournal_entry\x18[ \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x0cjournalEntry\x12M\n\x13module_type_profile\x18\\ \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x11moduleTypeProfile\x12\x37\n\x0b\x63ustom_link\x18] \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\ncustomLink\x12\'\n\x05owner\x18^ \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x05owner\x12\x37\n\x0bowner_group\x18_ \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\nownerGroup\x12:\n\x0c\x63\x61\x62le_bundle\x18` \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x0b\x63\x61\x62leBundle\x12\x34\n\nrack_group\x18\x61 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\trackGroup\x12=\n\rscript_module\x18\x62 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x0cscriptModule\x12P\n\x14virtual_machine_type\x18\x63 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x12virtualMachineType\x12$\n\x04user\x18\x64 \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\x04userB\x08\n\x06object\"\x9a\x04\n\x10\x43ustomFieldValue\x12-\n\x12multiple_selection\x18\x01 \x03(\tR\x11multipleSelection\x12O\n\x10multiple_objects\x18\x02 \x03(\x0b\x32$.diode.v1.CustomFieldObjectReferenceR\x0fmultipleObjects\x12\x14\n\x04text\x18\x03 \x01(\tH\x00R\x04text\x12\x1d\n\tlong_text\x18\x04 \x01(\tH\x00R\x08longText\x12\x1a\n\x07integer\x18\x05 \x01(\x03H\x00R\x07integer\x12\x1a\n\x07\x64\x65\x63imal\x18\x06 \x01(\x01H\x00R\x07\x64\x65\x63imal\x12\x1a\n\x07\x62oolean\x18\x07 \x01(\x08H\x00R\x07\x62oolean\x12\x30\n\x04\x64\x61te\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x04\x64\x61te\x12\x38\n\x08\x64\x61tetime\x18\t \x01(\x0b\x32\x1a.google.protobuf.TimestampH\x00R\x08\x64\x61tetime\x12\x12\n\x03url\x18\n \x01(\tH\x00R\x03url\x12\x14\n\x04json\x18\x0b \x01(\tH\x00R\x04json\x12\x1e\n\tselection\x18\x0c \x01(\tH\x00R\tselection\x12>\n\x06object\x18\r \x01(\x0b\x32$.diode.v1.CustomFieldObjectReferenceH\x00R\x06objectB\x07\n\x05value\"\xa8\x0f\n\x06\x44\x65vice\x12\x17\n\x04name\x18\x01 \x01(\tH\x00R\x04name\x88\x01\x01\x12\x35\n\x0b\x64\x65vice_type\x18\x02 \x01(\x0b\x32\x14.diode.v1.DeviceTypeR\ndeviceType\x12(\n\x04role\x18\x03 \x01(\x0b\x32\x14.diode.v1.DeviceRoleR\x04role\x12-\n\x06tenant\x18\x04 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12\x33\n\x08platform\x18\x05 \x01(\x0b\x32\x12.diode.v1.PlatformH\x02R\x08platform\x88\x01\x01\x12\x1b\n\x06serial\x18\x06 \x01(\tH\x03R\x06serial\x88\x01\x01\x12 \n\tasset_tag\x18\x07 \x01(\tH\x04R\x08\x61ssetTag\x88\x01\x01\x12\"\n\x04site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12\x33\n\x08location\x18\t \x01(\x0b\x32\x12.diode.v1.LocationH\x05R\x08location\x88\x01\x01\x12\'\n\x04rack\x18\n \x01(\x0b\x32\x0e.diode.v1.RackH\x06R\x04rack\x88\x01\x01\x12\x1f\n\x08position\x18\x0b \x01(\x01H\x07R\x08position\x88\x01\x01\x12+\n\x04\x66\x61\x63\x65\x18\x0c \x01(\tB\x12\xfa\x42\x0fr\rR\x05\x66rontR\x04rearH\x08R\x04\x66\x61\x63\x65\x88\x01\x01\x12\x1f\n\x08latitude\x18\r \x01(\x01H\tR\x08latitude\x88\x01\x01\x12!\n\tlongitude\x18\x0e \x01(\x01H\nR\tlongitude\x88\x01\x01\x12h\n\x06status\x18\x0f \x01(\tBK\xfa\x42HrFR\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x06\x66\x61iledR\tinventoryR\x07offlineR\x07plannedR\x06stagedH\x0bR\x06status\x88\x01\x01\x12\xad\x01\n\x07\x61irflow\x18\x10 \x01(\tB\x8d\x01\xfa\x42\x89\x01r\x86\x01R\rbottom-to-topR\rfront-to-rearR\rleft-to-rightR\x05mixedR\x07passiveR\rrear-to-frontR\x0crear-to-sideR\rright-to-leftR\x0cside-to-rearR\rtop-to-bottomH\x0cR\x07\x61irflow\x88\x01\x01\x12\x39\n\x0bprimary_ip4\x18\x11 \x01(\x0b\x32\x13.diode.v1.IPAddressH\rR\nprimaryIp4\x88\x01\x01\x12\x39\n\x0bprimary_ip6\x18\x12 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x0eR\nprimaryIp6\x88\x01\x01\x12/\n\x06oob_ip\x18\x13 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x0fR\x05oobIp\x88\x01\x01\x12\x30\n\x07\x63luster\x18\x14 \x01(\x0b\x32\x11.diode.v1.ClusterH\x10R\x07\x63luster\x88\x01\x01\x12\x46\n\x0fvirtual_chassis\x18\x15 \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x11R\x0evirtualChassis\x88\x01\x01\x12$\n\x0bvc_position\x18\x16 \x01(\x03H\x12R\nvcPosition\x88\x01\x01\x12$\n\x0bvc_priority\x18\x17 \x01(\x03H\x13R\nvcPriority\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x18 \x01(\tH\x14R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x19 \x01(\tH\x15R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x1a \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x1b \x03(\x0b\x32\".diode.v1.Device.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x1c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x1d \x01(\x0b\x32\x0f.diode.v1.OwnerH\x16R\x05owner\x88\x01\x01\x12\x39\n\x06\x63onfig\x18\x1e \x01(\x0b\x32\x16.diode.v1.DeviceConfigB\x04\x88\xb5\x18\x00H\x17R\x06\x63onfig\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_nameB\t\n\x07_tenantB\x0b\n\t_platformB\t\n\x07_serialB\x0c\n\n_asset_tagB\x0b\n\t_locationB\x07\n\x05_rackB\x0b\n\t_positionB\x07\n\x05_faceB\x0b\n\t_latitudeB\x0c\n\n_longitudeB\t\n\x07_statusB\n\n\x08_airflowB\x0e\n\x0c_primary_ip4B\x0e\n\x0c_primary_ip6B\t\n\x07_oob_ipB\n\n\x08_clusterB\x12\n\x10_virtual_chassisB\x0e\n\x0c_vc_positionB\x0e\n\x0c_vc_priorityB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_ownerB\t\n\x07_config\"\xe4\x04\n\tDeviceBay\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x19\n\x05label\x18\x03 \x01(\tH\x00R\x05label\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12@\n\x10installed_device\x18\x05 \x01(\x0b\x32\x10.diode.v1.DeviceH\x02R\x0finstalledDevice\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x07 \x03(\x0b\x32%.diode.v1.DeviceBay.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12\x1d\n\x07\x65nabled\x18\n \x01(\x08H\x04R\x07\x65nabled\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_labelB\x0e\n\x0c_descriptionB\x13\n\x11_installed_deviceB\x08\n\x06_ownerB\n\n\x08_enabled\"\xe4\x04\n\nDeviceRole\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12\x1c\n\x07vm_role\x18\x04 \x01(\x08H\x01R\x06vmRole\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x07 \x03(\x0b\x32&.diode.v1.DeviceRole.CustomFieldsEntryR\x0c\x63ustomFields\x12\x31\n\x06parent\x18\x08 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x03R\x06parent\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\n\n\x08_vm_roleB\x0e\n\x0c_descriptionB\t\n\x07_parentB\x0b\n\t_commentsB\x08\n\x06_owner\"\xed\t\n\nDeviceType\x12:\n\x0cmanufacturer\x18\x01 \x01(\x0b\x32\x16.diode.v1.ManufacturerR\x0cmanufacturer\x12\x42\n\x10\x64\x65\x66\x61ult_platform\x18\x02 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0f\x64\x65\x66\x61ultPlatform\x88\x01\x01\x12\x14\n\x05model\x18\x03 \x01(\tR\x05model\x12\x12\n\x04slug\x18\x04 \x01(\tR\x04slug\x12$\n\x0bpart_number\x18\x05 \x01(\tH\x01R\npartNumber\x88\x01\x01\x12\x1e\n\x08u_height\x18\x06 \x01(\x01H\x02R\x07uHeight\x88\x01\x01\x12=\n\x18\x65xclude_from_utilization\x18\x07 \x01(\x08H\x03R\x16\x65xcludeFromUtilization\x88\x01\x01\x12\'\n\ris_full_depth\x18\x08 \x01(\x08H\x04R\x0bisFullDepth\x88\x01\x01\x12@\n\x0esubdevice_role\x18\t \x01(\tB\x14\xfa\x42\x11r\x0fR\x05\x63hildR\x06parentH\x05R\rsubdeviceRole\x88\x01\x01\x12\xad\x01\n\x07\x61irflow\x18\n \x01(\tB\x8d\x01\xfa\x42\x89\x01r\x86\x01R\rbottom-to-topR\rfront-to-rearR\rleft-to-rightR\x05mixedR\x07passiveR\rrear-to-frontR\x0crear-to-sideR\rright-to-leftR\x0cside-to-rearR\rtop-to-bottomH\x06R\x07\x61irflow\x88\x01\x01\x12\x1b\n\x06weight\x18\x0b \x01(\x01H\x07R\x06weight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x0c \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x08R\nweightUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\r \x01(\tH\tR\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\nR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x10 \x03(\x0b\x32&.diode.v1.DeviceType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0bR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_default_platformB\x0e\n\x0c_part_numberB\x0b\n\t_u_heightB\x1b\n\x19_exclude_from_utilizationB\x10\n\x0e_is_full_depthB\x11\n\x0f_subdevice_roleB\n\n\x08_airflowB\t\n\x07_weightB\x0e\n\x0c_weight_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xb3\x05\n\tFHRPGroup\x12\x17\n\x04name\x18\x01 \x01(\tH\x00R\x04name\x88\x01\x01\x12S\n\x08protocol\x18\x02 \x01(\tB7\xfa\x42\x34r2R\x04\x63\x61rpR\tclusterxlR\x04glbpR\x04hsrpR\x05otherR\x05vrrp2R\x05vrrp3R\x08protocol\x12\x19\n\x08group_id\x18\x03 \x01(\x03R\x07groupId\x12\x37\n\tauth_type\x18\x04 \x01(\tB\x15\xfa\x42\x12r\x10R\x03md5R\tplaintextH\x01R\x08\x61uthType\x88\x01\x01\x12\x1e\n\x08\x61uth_key\x18\x05 \x01(\tH\x02R\x07\x61uthKey\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\t \x03(\x0b\x32%.diode.v1.FHRPGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_nameB\x0c\n\n_auth_typeB\x0b\n\t_auth_keyB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xb4>\n\x13\x46HRPGroupAssignment\x12)\n\x05group\x18\x01 \x01(\x0b\x32\x13.diode.v1.FHRPGroupR\x05group\x12\x34\n\rinterface_asn\x18\x02 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x0cinterfaceAsn\x12\x44\n\x13interface_asn_range\x18\x03 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x11interfaceAsnRange\x12\x46\n\x13interface_aggregate\x18\x04 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x12interfaceAggregate\x12:\n\x0finterface_cable\x18\x05 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x0einterfaceCable\x12G\n\x14interface_cable_path\x18\x06 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x12interfaceCablePath\x12`\n\x1binterface_cable_termination\x18\x07 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x19interfaceCableTermination\x12@\n\x11interface_circuit\x18\x08 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x10interfaceCircuit\x12P\n\x17interface_circuit_group\x18\t \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x15interfaceCircuitGroup\x12o\n\"interface_circuit_group_assignment\x18\n \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x1finterfaceCircuitGroupAssignment\x12\x62\n\x1dinterface_circuit_termination\x18\x0b \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x1binterfaceCircuitTermination\x12M\n\x16interface_circuit_type\x18\x0c \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x14interfaceCircuitType\x12@\n\x11interface_cluster\x18\r \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x10interfaceCluster\x12P\n\x17interface_cluster_group\x18\x0e \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x15interfaceClusterGroup\x12M\n\x16interface_cluster_type\x18\x0f \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x14interfaceClusterType\x12M\n\x16interface_console_port\x18\x10 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x14interfaceConsolePort\x12`\n\x1dinterface_console_server_port\x18\x11 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1ainterfaceConsoleServerPort\x12@\n\x11interface_contact\x18\x12 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x10interfaceContact\x12_\n\x1cinterface_contact_assignment\x18\x13 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x1ainterfaceContactAssignment\x12P\n\x17interface_contact_group\x18\x14 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x15interfaceContactGroup\x12M\n\x16interface_contact_role\x18\x15 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x14interfaceContactRole\x12=\n\x10interface_device\x18\x16 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x0finterfaceDevice\x12G\n\x14interface_device_bay\x18\x17 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x12interfaceDeviceBay\x12J\n\x15interface_device_role\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x13interfaceDeviceRole\x12J\n\x15interface_device_type\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x13interfaceDeviceType\x12G\n\x14interface_fhrp_group\x18\x1a \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x12interfaceFhrpGroup\x12\x66\n\x1finterface_fhrp_group_assignment\x18\x1b \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x1cinterfaceFhrpGroupAssignment\x12G\n\x14interface_front_port\x18\x1c \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x12interfaceFrontPort\x12G\n\x14interface_ike_policy\x18\x1d \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x12interfaceIkePolicy\x12M\n\x16interface_ike_proposal\x18\x1e \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x14interfaceIkeProposal\x12G\n\x14interface_ip_address\x18\x1f \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x12interfaceIpAddress\x12\x41\n\x12interface_ip_range\x18 \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x10interfaceIpRange\x12N\n\x17interface_ip_sec_policy\x18! \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x14interfaceIpSecPolicy\x12Q\n\x18interface_ip_sec_profile\x18\" \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x15interfaceIpSecProfile\x12T\n\x19interface_ip_sec_proposal\x18# \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x16interfaceIpSecProposal\x12\x46\n\x13interface_interface\x18$ \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x12interfaceInterface\x12S\n\x18interface_inventory_item\x18% \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x16interfaceInventoryItem\x12`\n\x1dinterface_inventory_item_role\x18& \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x1ainterfaceInventoryItemRole\x12:\n\x0finterface_l2vpn\x18\' \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x0einterfaceL2vpn\x12\\\n\x1binterface_l2vpn_termination\x18( \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x19interfaceL2vpnTermination\x12\x43\n\x12interface_location\x18) \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x11interfaceLocation\x12J\n\x15interface_mac_address\x18* \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x13interfaceMacAddress\x12O\n\x16interface_manufacturer\x18+ \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x15interfaceManufacturer\x12=\n\x10interface_module\x18, \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x0finterfaceModule\x12G\n\x14interface_module_bay\x18- \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x12interfaceModuleBay\x12J\n\x15interface_module_type\x18. \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x13interfaceModuleType\x12\x43\n\x12interface_platform\x18/ \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x11interfacePlatform\x12G\n\x14interface_power_feed\x18\x30 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x12interfacePowerFeed\x12M\n\x16interface_power_outlet\x18\x31 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x14interfacePowerOutlet\x12J\n\x15interface_power_panel\x18\x32 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x13interfacePowerPanel\x12G\n\x14interface_power_port\x18\x33 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x12interfacePowerPort\x12=\n\x10interface_prefix\x18\x34 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x0finterfacePrefix\x12\x43\n\x12interface_provider\x18\x35 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x11interfaceProvider\x12Y\n\x1ainterface_provider_account\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x18interfaceProviderAccount\x12Y\n\x1ainterface_provider_network\x18\x37 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x18interfaceProviderNetwork\x12\x34\n\rinterface_rir\x18\x38 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x0cinterfaceRir\x12\x37\n\x0einterface_rack\x18\x39 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\rinterfaceRack\x12Y\n\x1ainterface_rack_reservation\x18: \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x18interfaceRackReservation\x12\x44\n\x13interface_rack_role\x18; \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x11interfaceRackRole\x12\x44\n\x13interface_rack_type\x18< \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x11interfaceRackType\x12\x44\n\x13interface_rear_port\x18= \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x11interfaceRearPort\x12=\n\x10interface_region\x18> \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0finterfaceRegion\x12\x37\n\x0einterface_role\x18? \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\rinterfaceRole\x12M\n\x16interface_route_target\x18@ \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x14interfaceRouteTarget\x12@\n\x11interface_service\x18\x41 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x10interfaceService\x12\x37\n\x0einterface_site\x18\x42 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\rinterfaceSite\x12G\n\x14interface_site_group\x18\x43 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x12interfaceSiteGroup\x12\x34\n\rinterface_tag\x18\x44 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x0cinterfaceTag\x12=\n\x10interface_tenant\x18\x45 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x0finterfaceTenant\x12M\n\x16interface_tenant_group\x18\x46 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x14interfaceTenantGroup\x12=\n\x10interface_tunnel\x18G \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x0finterfaceTunnel\x12M\n\x16interface_tunnel_group\x18H \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x14interfaceTunnelGroup\x12_\n\x1cinterface_tunnel_termination\x18I \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1ainterfaceTunnelTermination\x12\x37\n\x0einterface_vlan\x18J \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\rinterfaceVlan\x12G\n\x14interface_vlan_group\x18K \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x12interfaceVlanGroup\x12l\n!interface_vlan_translation_policy\x18L \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x1einterfaceVlanTranslationPolicy\x12\x66\n\x1finterface_vlan_translation_rule\x18M \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x1cinterfaceVlanTranslationRule\x12M\n\x16interface_vm_interface\x18N \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x14interfaceVmInterface\x12\x34\n\rinterface_vrf\x18O \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x0cinterfaceVrf\x12V\n\x19interface_virtual_chassis\x18P \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x17interfaceVirtualChassis\x12V\n\x19interface_virtual_circuit\x18Q \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x17interfaceVirtualCircuit\x12x\n%interface_virtual_circuit_termination\x18R \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\"interfaceVirtualCircuitTermination\x12\x63\n\x1einterface_virtual_circuit_type\x18S \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x1binterfaceVirtualCircuitType\x12i\n interface_virtual_device_context\x18T \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1dinterfaceVirtualDeviceContext\x12M\n\x16interface_virtual_disk\x18U \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x14interfaceVirtualDisk\x12V\n\x19interface_virtual_machine\x18V \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x17interfaceVirtualMachine\x12M\n\x16interface_wireless_lan\x18W \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x14interfaceWirelessLan\x12]\n\x1cinterface_wireless_lan_group\x18X \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x19interfaceWirelessLanGroup\x12P\n\x17interface_wireless_link\x18Y \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x15interfaceWirelessLink\x12M\n\x16interface_custom_field\x18[ \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x14interfaceCustomField\x12j\n!interface_custom_field_choice_set\x18\\ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1dinterfaceCustomFieldChoiceSet\x12P\n\x17interface_journal_entry\x18] \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x15interfaceJournalEntry\x12`\n\x1dinterface_module_type_profile\x18^ \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x1ainterfaceModuleTypeProfile\x12J\n\x15interface_custom_link\x18_ \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x13interfaceCustomLink\x12:\n\x0finterface_owner\x18\x61 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x0einterfaceOwner\x12J\n\x15interface_owner_group\x18\x62 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x13interfaceOwnerGroup\x12M\n\x16interface_cable_bundle\x18\x63 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x14interfaceCableBundle\x12G\n\x14interface_rack_group\x18\x64 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x12interfaceRackGroup\x12P\n\x17interface_script_module\x18\x65 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x15interfaceScriptModule\x12\x63\n\x1einterface_virtual_machine_type\x18\x66 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x1binterfaceVirtualMachineType\x12\x37\n\x0einterface_user\x18g \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\rinterfaceUser\x12\x1a\n\x08priority\x18Z \x01(\x03R\x08priority\x12\x39\n\x08metadata\x18` \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0b\n\tinterface\"\xfb\t\n\tFrontPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xc4\x03\n\x04type\x18\x05 \x01(\tB\xaf\x03\xfa\x42\xab\x03r\xa8\x03R\t110-punchR\x04\x34p2cR\x04\x34p4cR\x04\x36p2cR\x04\x36p4cR\x04\x36p6cR\x04\x38p2cR\x04\x38p4cR\x04\x38p6cR\x04\x38p8cR\x03\x62ncR\x02\x63sR\x01\x66R\x02\x66\x63R\x06\x66\x63-apcR\x05\x66\x63-pcR\x06\x66\x63-upcR\x04gg45R\x02lcR\x06lc-apcR\x05lc-pcR\x06lc-upcR\x03lshR\x07lsh-apcR\x06lsh-pcR\x07lsh-upcR\x03lx5R\x07lx5-apcR\x06lx5-pcR\x07lx5-upcR\x03mpoR\x05mrj21R\x04mtrjR\x01nR\x05otherR\x02scR\x06sc-apcR\x05sc-pcR\x06sc-upcR\x07sma-905R\x07sma-906R\x02snR\x06spliceR\x02stR\x07tera-1pR\x07tera-2pR\x07tera-4pR\x06urm-p2R\x06urm-p4R\x06urm-p8R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bR\x04type\x12\x19\n\x05\x63olor\x18\x06 \x01(\tH\x02R\x05\x63olor\x88\x01\x01\x12\x33\n\trear_port\x18\x07 \x01(\x0b\x32\x12.diode.v1.RearPortB\x02\x18\x01R\x08rearPort\x12\x35\n\x12rear_port_position\x18\x08 \x01(\x03\x42\x02\x18\x01H\x03R\x10rearPortPosition\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\t \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\n \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\x0b \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x0c \x03(\x0b\x32%.diode.v1.FrontPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12!\n\tpositions\x18\x0e \x01(\x03H\x06R\tpositions\x88\x01\x01\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\x07R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x08\n\x06_colorB\x15\n\x13_rear_port_positionB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x0c\n\n_positionsB\x08\n\x06_owner\"\xd1\x38\n\rGenericObject\x12.\n\nobject_asn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\tobjectAsn\x12>\n\x10object_asn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x0eobjectAsnRange\x12@\n\x10object_aggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x0fobjectAggregate\x12\x34\n\x0cobject_cable\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x0bobjectCable\x12\x41\n\x11object_cable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x0fobjectCablePath\x12Z\n\x18object_cable_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x16objectCableTermination\x12:\n\x0eobject_circuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\robjectCircuit\x12J\n\x14object_circuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x12objectCircuitGroup\x12i\n\x1fobject_circuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R\x1cobjectCircuitGroupAssignment\x12\\\n\x1aobject_circuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x18objectCircuitTermination\x12G\n\x13object_circuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x11objectCircuitType\x12:\n\x0eobject_cluster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\robjectCluster\x12J\n\x14object_cluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x12objectClusterGroup\x12G\n\x13object_cluster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x11objectClusterType\x12G\n\x13object_console_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x11objectConsolePort\x12Z\n\x1aobject_console_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x17objectConsoleServerPort\x12:\n\x0eobject_contact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\robjectContact\x12Y\n\x19object_contact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x17objectContactAssignment\x12J\n\x14object_contact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x12objectContactGroup\x12G\n\x13object_contact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x11objectContactRole\x12\x37\n\robject_device\x18\x15 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x0cobjectDevice\x12\x41\n\x11object_device_bay\x18\x16 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x0fobjectDeviceBay\x12\x44\n\x12object_device_role\x18\x17 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x10objectDeviceRole\x12\x44\n\x12object_device_type\x18\x18 \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x10objectDeviceType\x12\x41\n\x11object_fhrp_group\x18\x19 \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x0fobjectFhrpGroup\x12`\n\x1cobject_fhrp_group_assignment\x18\x1a \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x19objectFhrpGroupAssignment\x12\x41\n\x11object_front_port\x18\x1b \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x0fobjectFrontPort\x12\x41\n\x11object_ike_policy\x18\x1c \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x0fobjectIkePolicy\x12G\n\x13object_ike_proposal\x18\x1d \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x11objectIkeProposal\x12\x41\n\x11object_ip_address\x18\x1e \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x0fobjectIpAddress\x12;\n\x0fobject_ip_range\x18\x1f \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\robjectIpRange\x12H\n\x14object_ip_sec_policy\x18 \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x11objectIpSecPolicy\x12K\n\x15object_ip_sec_profile\x18! \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x12objectIpSecProfile\x12N\n\x16object_ip_sec_proposal\x18\" \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x13objectIpSecProposal\x12@\n\x10object_interface\x18# \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x0fobjectInterface\x12M\n\x15object_inventory_item\x18$ \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x13objectInventoryItem\x12Z\n\x1aobject_inventory_item_role\x18% \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x17objectInventoryItemRole\x12\x34\n\x0cobject_l2vpn\x18& \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x0bobjectL2vpn\x12V\n\x18object_l2vpn_termination\x18\' \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x16objectL2vpnTermination\x12=\n\x0fobject_location\x18( \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x0eobjectLocation\x12\x44\n\x12object_mac_address\x18) \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x10objectMacAddress\x12I\n\x13object_manufacturer\x18* \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x12objectManufacturer\x12\x37\n\robject_module\x18+ \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x0cobjectModule\x12\x41\n\x11object_module_bay\x18, \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x0fobjectModuleBay\x12\x44\n\x12object_module_type\x18- \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x10objectModuleType\x12=\n\x0fobject_platform\x18. \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0eobjectPlatform\x12\x41\n\x11object_power_feed\x18/ \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x0fobjectPowerFeed\x12G\n\x13object_power_outlet\x18\x30 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x11objectPowerOutlet\x12\x44\n\x12object_power_panel\x18\x31 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x10objectPowerPanel\x12\x41\n\x11object_power_port\x18\x32 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x0fobjectPowerPort\x12\x37\n\robject_prefix\x18\x33 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x0cobjectPrefix\x12=\n\x0fobject_provider\x18\x34 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x0eobjectProvider\x12S\n\x17object_provider_account\x18\x35 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x15objectProviderAccount\x12S\n\x17object_provider_network\x18\x36 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x15objectProviderNetwork\x12.\n\nobject_rir\x18\x37 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\tobjectRir\x12\x31\n\x0bobject_rack\x18\x38 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\nobjectRack\x12S\n\x17object_rack_reservation\x18\x39 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x15objectRackReservation\x12>\n\x10object_rack_role\x18: \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x0eobjectRackRole\x12>\n\x10object_rack_type\x18; \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x0eobjectRackType\x12>\n\x10object_rear_port\x18< \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x0eobjectRearPort\x12\x37\n\robject_region\x18= \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0cobjectRegion\x12\x31\n\x0bobject_role\x18> \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\nobjectRole\x12G\n\x13object_route_target\x18? \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x11objectRouteTarget\x12:\n\x0eobject_service\x18@ \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\robjectService\x12\x31\n\x0bobject_site\x18\x41 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\nobjectSite\x12\x41\n\x11object_site_group\x18\x42 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0fobjectSiteGroup\x12.\n\nobject_tag\x18\x43 \x01(\x0b\x32\r.diode.v1.TagH\x00R\tobjectTag\x12\x37\n\robject_tenant\x18\x44 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x0cobjectTenant\x12G\n\x13object_tenant_group\x18\x45 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x11objectTenantGroup\x12\x37\n\robject_tunnel\x18\x46 \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x0cobjectTunnel\x12G\n\x13object_tunnel_group\x18G \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x11objectTunnelGroup\x12Y\n\x19object_tunnel_termination\x18H \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x17objectTunnelTermination\x12\x31\n\x0bobject_vlan\x18I \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\nobjectVlan\x12\x41\n\x11object_vlan_group\x18J \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x0fobjectVlanGroup\x12\x66\n\x1eobject_vlan_translation_policy\x18K \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R\x1bobjectVlanTranslationPolicy\x12`\n\x1cobject_vlan_translation_rule\x18L \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x19objectVlanTranslationRule\x12G\n\x13object_vm_interface\x18M \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x11objectVmInterface\x12.\n\nobject_vrf\x18N \x01(\x0b\x32\r.diode.v1.VRFH\x00R\tobjectVrf\x12P\n\x16object_virtual_chassis\x18O \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x14objectVirtualChassis\x12P\n\x16object_virtual_circuit\x18P \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x14objectVirtualCircuit\x12r\n\"object_virtual_circuit_termination\x18Q \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\x1fobjectVirtualCircuitTermination\x12]\n\x1bobject_virtual_circuit_type\x18R \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x18objectVirtualCircuitType\x12\x63\n\x1dobject_virtual_device_context\x18S \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1aobjectVirtualDeviceContext\x12G\n\x13object_virtual_disk\x18T \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x11objectVirtualDisk\x12P\n\x16object_virtual_machine\x18U \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x14objectVirtualMachine\x12G\n\x13object_wireless_lan\x18V \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x11objectWirelessLan\x12W\n\x19object_wireless_lan_group\x18W \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x16objectWirelessLanGroup\x12J\n\x14object_wireless_link\x18X \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x12objectWirelessLink\x12G\n\x13object_custom_field\x18Y \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x11objectCustomField\x12\x64\n\x1eobject_custom_field_choice_set\x18Z \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1aobjectCustomFieldChoiceSet\x12J\n\x14object_journal_entry\x18[ \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x12objectJournalEntry\x12Z\n\x1aobject_module_type_profile\x18\\ \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x17objectModuleTypeProfile\x12\x44\n\x12object_custom_link\x18] \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x10objectCustomLink\x12\x34\n\x0cobject_owner\x18^ \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x0bobjectOwner\x12\x44\n\x12object_owner_group\x18_ \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x10objectOwnerGroup\x12G\n\x13object_cable_bundle\x18` \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x11objectCableBundle\x12\x41\n\x11object_rack_group\x18\x61 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x0fobjectRackGroup\x12J\n\x14object_script_module\x18\x62 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x12objectScriptModule\x12]\n\x1bobject_virtual_machine_type\x18\x63 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x18objectVirtualMachineType\x12\x31\n\x0bobject_user\x18\x64 \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\nobjectUserB\x08\n\x06object\"\x92\x05\n\tIKEPolicy\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12#\n\x07version\x18\x03 \x01(\x03\x42\t\xfa\x42\x06\"\x04\x30\x01\x30\x02R\x07version\x12\x30\n\x04mode\x18\x04 \x01(\tB\x17\xfa\x42\x14r\x12R\naggressiveR\x04mainH\x01R\x04mode\x88\x01\x01\x12(\n\rpreshared_key\x18\x05 \x01(\tH\x02R\x0cpresharedKey\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x06 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x07 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x08 \x03(\x0b\x32%.diode.v1.IKEPolicy.CustomFieldsEntryR\x0c\x63ustomFields\x12\x33\n\tproposals\x18\t \x03(\x0b\x32\x15.diode.v1.IKEProposalR\tproposals\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x07\n\x05_modeB\x10\n\x0e_preshared_keyB\x0b\n\t_commentsB\x08\n\x06_owner\"\xff\x07\n\x0bIKEProposal\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12x\n\x15\x61uthentication_method\x18\x03 \x01(\tBC\xfa\x42@r>R\x0c\x63\x65rtificatesR\x0e\x64sa-signaturesR\x0epreshared-keysR\x0ersa-signaturesR\x14\x61uthenticationMethod\x12\x99\x01\n\x14\x65ncryption_algorithm\x18\x04 \x01(\tBf\xfa\x42\x63raR\x08\x33\x64\x65s-cbcR\x0b\x61\x65s-128-cbcR\x0b\x61\x65s-128-gcmR\x0b\x61\x65s-192-cbcR\x0b\x61\x65s-192-gcmR\x0b\x61\x65s-256-cbcR\x0b\x61\x65s-256-gcmR\x07\x64\x65s-cbcR\x13\x65ncryptionAlgorithm\x12\x81\x01\n\x18\x61uthentication_algorithm\x18\x05 \x01(\tBA\xfa\x42>rr \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x1d\x61ssignedObjectProviderAccount\x12\x64\n assigned_object_provider_network\x18? \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1d\x61ssignedObjectProviderNetwork\x12?\n\x13\x61ssigned_object_rir\x18@ \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x11\x61ssignedObjectRir\x12\x42\n\x14\x61ssigned_object_rack\x18\x41 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x12\x61ssignedObjectRack\x12\x64\n assigned_object_rack_reservation\x18\x42 \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x1d\x61ssignedObjectRackReservation\x12O\n\x19\x61ssigned_object_rack_role\x18\x43 \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x16\x61ssignedObjectRackRole\x12O\n\x19\x61ssigned_object_rack_type\x18\x44 \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x16\x61ssignedObjectRackType\x12O\n\x19\x61ssigned_object_rear_port\x18\x45 \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x16\x61ssignedObjectRearPort\x12H\n\x16\x61ssigned_object_region\x18\x46 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x14\x61ssignedObjectRegion\x12\x42\n\x14\x61ssigned_object_role\x18G \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x12\x61ssignedObjectRole\x12X\n\x1c\x61ssigned_object_route_target\x18H \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x19\x61ssignedObjectRouteTarget\x12K\n\x17\x61ssigned_object_service\x18I \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x15\x61ssignedObjectService\x12\x42\n\x14\x61ssigned_object_site\x18J \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x12\x61ssignedObjectSite\x12R\n\x1a\x61ssigned_object_site_group\x18K \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x17\x61ssignedObjectSiteGroup\x12?\n\x13\x61ssigned_object_tag\x18L \x01(\x0b\x32\r.diode.v1.TagH\x00R\x11\x61ssignedObjectTag\x12H\n\x16\x61ssigned_object_tenant\x18M \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x14\x61ssignedObjectTenant\x12X\n\x1c\x61ssigned_object_tenant_group\x18N \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x19\x61ssignedObjectTenantGroup\x12H\n\x16\x61ssigned_object_tunnel\x18O \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x14\x61ssignedObjectTunnel\x12X\n\x1c\x61ssigned_object_tunnel_group\x18P \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x19\x61ssignedObjectTunnelGroup\x12j\n\"assigned_object_tunnel_termination\x18Q \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1f\x61ssignedObjectTunnelTermination\x12R\n\x1a\x61ssigned_object_vlan_group\x18R \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x17\x61ssignedObjectVlanGroup\x12w\n\'assigned_object_vlan_translation_policy\x18S \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R#assignedObjectVlanTranslationPolicy\x12q\n%assigned_object_vlan_translation_rule\x18T \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R!assignedObjectVlanTranslationRule\x12?\n\x13\x61ssigned_object_vrf\x18U \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x11\x61ssignedObjectVrf\x12\x61\n\x1f\x61ssigned_object_virtual_chassis\x18V \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x1c\x61ssignedObjectVirtualChassis\x12\x61\n\x1f\x61ssigned_object_virtual_circuit\x18W \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x1c\x61ssignedObjectVirtualCircuit\x12\x83\x01\n+assigned_object_virtual_circuit_termination\x18X \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\'assignedObjectVirtualCircuitTermination\x12n\n$assigned_object_virtual_circuit_type\x18Y \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R assignedObjectVirtualCircuitType\x12t\n&assigned_object_virtual_device_context\x18Z \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\"assignedObjectVirtualDeviceContext\x12X\n\x1c\x61ssigned_object_virtual_disk\x18[ \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x19\x61ssignedObjectVirtualDisk\x12\x61\n\x1f\x61ssigned_object_virtual_machine\x18\\ \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x1c\x61ssignedObjectVirtualMachine\x12X\n\x1c\x61ssigned_object_wireless_lan\x18] \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x19\x61ssignedObjectWirelessLan\x12h\n\"assigned_object_wireless_lan_group\x18^ \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x1e\x61ssignedObjectWirelessLanGroup\x12[\n\x1d\x61ssigned_object_wireless_link\x18_ \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x1a\x61ssignedObjectWirelessLink\x12U\n\x1b\x61ssigned_object_custom_link\x18` \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x18\x61ssignedObjectCustomLink\x12\x45\n\x15\x61ssigned_object_owner\x18\x62 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x13\x61ssignedObjectOwner\x12U\n\x1b\x61ssigned_object_owner_group\x18\x63 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x18\x61ssignedObjectOwnerGroup\x12X\n\x1c\x61ssigned_object_cable_bundle\x18\x64 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x19\x61ssignedObjectCableBundle\x12R\n\x1a\x61ssigned_object_rack_group\x18\x65 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x17\x61ssignedObjectRackGroup\x12[\n\x1d\x61ssigned_object_script_module\x18\x66 \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x1a\x61ssignedObjectScriptModule\x12n\n$assigned_object_virtual_machine_type\x18g \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R assignedObjectVirtualMachineType\x12\x42\n\x14\x61ssigned_object_user\x18h \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\x12\x61ssignedObjectUser\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12Q\n\rcustom_fields\x18\x06 \x03(\x0b\x32,.diode.v1.L2VPNTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x61 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x11\n\x0f\x61ssigned_object\"\xfe\x05\n\x08Location\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\"\n\x04site\x18\x03 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12/\n\x06parent\x18\x04 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x06parent\x88\x01\x01\x12V\n\x06status\x18\x05 \x01(\tB9\xfa\x42\x36r4R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x07plannedR\x07retiredR\x07stagingH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x1f\n\x08\x66\x61\x63ility\x18\x07 \x01(\tH\x03R\x08\x66\x61\x63ility\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\n \x03(\x0b\x32$.diode.v1.Location.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\t\n\x07_statusB\t\n\x07_tenantB\x0b\n\t_facilityB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x90\x05\n\nMACAddress\x12\x1f\n\x0bmac_address\x18\x01 \x01(\tR\nmacAddress\x12Q\n\x19\x61ssigned_object_interface\x18\x02 \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x17\x61ssignedObjectInterface\x12X\n\x1c\x61ssigned_object_vm_interface\x18\x03 \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x19\x61ssignedObjectVmInterface\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x07 \x03(\x0b\x32&.diode.v1.MACAddress.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x11\n\x0f\x61ssigned_objectB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xdb\x03\n\x0cManufacturer\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x05 \x03(\x0b\x32(.diode.v1.Manufacturer.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\x94\x07\n\x06Module\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12\x32\n\nmodule_bay\x18\x02 \x01(\x0b\x32\x13.diode.v1.ModuleBayR\tmoduleBay\x12\x35\n\x0bmodule_type\x18\x03 \x01(\x0b\x32\x14.diode.v1.ModuleTypeR\nmoduleType\x12]\n\x06status\x18\x04 \x01(\tB@\xfa\x42=r;R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x06\x66\x61iledR\x07offlineR\x07plannedR\x06stagedH\x00R\x06status\x88\x01\x01\x12\x1b\n\x06serial\x18\x05 \x01(\tH\x01R\x06serial\x88\x01\x01\x12 \n\tasset_tag\x18\x06 \x01(\tH\x02R\x08\x61ssetTag\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\n \x03(\x0b\x32\".diode.v1.Module.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x12\x36\n\x14replicate_components\x18\r \x01(\x08H\x06R\x13replicateComponents\x88\x01\x01\x12.\n\x10\x61\x64opt_components\x18\x0e \x01(\x08H\x07R\x0f\x61\x64optComponents\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_statusB\t\n\x07_serialB\x0c\n\n_asset_tagB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_ownerB\x17\n\x15_replicate_componentsB\x13\n\x11_adopt_components\"\xcc\x05\n\tModuleBay\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12@\n\x10installed_module\x18\x04 \x01(\x0b\x32\x10.diode.v1.ModuleH\x01R\x0finstalledModule\x88\x01\x01\x12\x19\n\x05label\x18\x05 \x01(\tH\x02R\x05label\x88\x01\x01\x12\x1f\n\x08position\x18\x06 \x01(\tH\x03R\x08position\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\t \x03(\x0b\x32%.diode.v1.ModuleBay.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x12\x1d\n\x07\x65nabled\x18\x0c \x01(\x08H\x06R\x07\x65nabled\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x13\n\x11_installed_moduleB\x08\n\x06_labelB\x0b\n\t_positionB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\n\n\x08_enabled\"\xac\x07\n\nModuleType\x12:\n\x0cmanufacturer\x18\x01 \x01(\x0b\x32\x16.diode.v1.ManufacturerR\x0cmanufacturer\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model\x12$\n\x0bpart_number\x18\x03 \x01(\tH\x00R\npartNumber\x88\x01\x01\x12w\n\x07\x61irflow\x18\x04 \x01(\tBX\xfa\x42UrSR\rfront-to-rearR\rleft-to-rightR\x07passiveR\rrear-to-frontR\rright-to-leftR\x0cside-to-rearH\x01R\x07\x61irflow\x88\x01\x01\x12\x1b\n\x06weight\x18\x05 \x01(\x01H\x02R\x06weight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x06 \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x03R\nweightUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\n \x03(\x0b\x32&.diode.v1.ModuleType.CustomFieldsEntryR\x0c\x63ustomFields\x12:\n\x07profile\x18\x0b \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x06R\x07profile\x88\x01\x01\x12#\n\nattributes\x18\x0c \x01(\tH\x07R\nattributes\x88\x01\x01\x12\x39\n\x08metadata\x18\r \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0e \x01(\x0b\x32\x0f.diode.v1.OwnerH\x08R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_part_numberB\n\n\x08_airflowB\t\n\x07_weightB\x0e\n\x0c_weight_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\n\n\x08_profileB\r\n\x0b_attributesB\x08\n\x06_owner\"\xe1\x04\n\x08Platform\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12?\n\x0cmanufacturer\x18\x03 \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x0cmanufacturer\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x06 \x03(\x0b\x32$.diode.v1.Platform.CustomFieldsEntryR\x0c\x63ustomFields\x12/\n\x06parent\x18\x07 \x01(\x0b\x32\x12.diode.v1.PlatformH\x02R\x06parent\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0f\n\r_manufacturerB\x0e\n\x0c_descriptionB\t\n\x07_parentB\x0b\n\t_commentsB\x08\n\x06_owner\"\xca\x08\n\tPowerFeed\x12\x35\n\x0bpower_panel\x18\x01 \x01(\x0b\x32\x14.diode.v1.PowerPanelR\npowerPanel\x12\'\n\x04rack\x18\x02 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x04rack\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x44\n\x06status\x18\x04 \x01(\tB\'\xfa\x42$r\"R\x06\x61\x63tiveR\x06\x66\x61iledR\x07offlineR\x07plannedH\x01R\x06status\x88\x01\x01\x12\x32\n\x04type\x18\x05 \x01(\tB\x19\xfa\x42\x16r\x14R\x07primaryR\tredundantH\x02R\x04type\x88\x01\x01\x12*\n\x06supply\x18\x06 \x01(\tB\r\xfa\x42\nr\x08R\x02\x61\x63R\x02\x64\x63H\x03R\x06supply\x88\x01\x01\x12;\n\x05phase\x18\x07 \x01(\tB \xfa\x42\x1dr\x1bR\x0csingle-phaseR\x0bthree-phaseH\x04R\x05phase\x88\x01\x01\x12\x1d\n\x07voltage\x18\x08 \x01(\x03H\x05R\x07voltage\x88\x01\x01\x12\x1f\n\x08\x61mperage\x18\t \x01(\x03H\x06R\x08\x61mperage\x88\x01\x01\x12,\n\x0fmax_utilization\x18\n \x01(\x03H\x07R\x0emaxUtilization\x88\x01\x01\x12*\n\x0emark_connected\x18\x0b \x01(\x08H\x08R\rmarkConnected\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0c \x01(\tH\tR\x0b\x64\x65scription\x88\x01\x01\x12-\n\x06tenant\x18\r \x01(\x0b\x32\x10.diode.v1.TenantH\nR\x06tenant\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\x0bR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x10 \x03(\x0b\x32%.diode.v1.PowerFeed.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0cR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_rackB\t\n\x07_statusB\x07\n\x05_typeB\t\n\x07_supplyB\x08\n\x06_phaseB\n\n\x08_voltageB\x0b\n\t_amperageB\x12\n\x10_max_utilizationB\x11\n\x0f_mark_connectedB\x0e\n\x0c_descriptionB\t\n\x07_tenantB\x0b\n\t_commentsB\x08\n\x06_owner\"\xde\x11\n\x0bPowerOutlet\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xff\n\n\x04type\x18\x05 \x01(\tB\xe5\n\xfa\x42\xe1\nr\xde\nR\x07\x43S6360CR\x07\x43S6364CR\x07\x43S8164CR\x07\x43S8264CR\x07\x43S8364CR\x07\x43S8464CR\x0b\x64\x63-terminalR\teaton-c39R\thardwiredR\x07hdot-cxR\x11iec-60309-2p-e-4hR\x11iec-60309-2p-e-6hR\x11iec-60309-2p-e-9hR\x11iec-60309-3p-e-4hR\x11iec-60309-3p-e-6hR\x11iec-60309-3p-e-9hR\x13iec-60309-3p-n-e-4hR\x13iec-60309-3p-n-e-6hR\x13iec-60309-3p-n-e-9hR\x12iec-60309-p-n-e-4hR\x12iec-60309-p-n-e-6hR\x12iec-60309-p-n-e-9hR\riec-60320-c13R\riec-60320-c15R\riec-60320-c17R\riec-60320-c19R\riec-60320-c21R\x0ciec-60320-c5R\x0ciec-60320-c7R\x0biec-60906-1R\x05ita-eR\x05ita-fR\x05ita-gR\x05ita-hR\x05ita-iR\x05ita-jR\x05ita-kR\x05ita-lR\x05ita-mR\x11ita-multistandardR\x05ita-nR\x05ita-oR\x13molex-micro-fit-1x2R\x13molex-micro-fit-2x2R\x13molex-micro-fit-2x3R\x13molex-micro-fit-2x4R\rnbr-14136-10aR\rnbr-14136-20aR\nnema-1-15rR\x0bnema-10-30rR\x0bnema-10-50rR\x0bnema-14-20rR\x0bnema-14-30rR\x0bnema-14-50rR\x0bnema-14-60rR\x0bnema-15-15rR\x0bnema-15-20rR\x0bnema-15-30rR\x0bnema-15-50rR\x0bnema-15-60rR\nnema-5-15rR\nnema-5-20rR\nnema-5-30rR\nnema-5-50rR\nnema-6-15rR\nnema-6-20rR\nnema-6-30rR\nnema-6-50rR\x0bnema-l1-15rR\x0cnema-l10-30rR\x0cnema-l14-20rR\x0cnema-l14-30rR\x0cnema-l14-50rR\x0cnema-l14-60rR\x0cnema-l15-20rR\x0cnema-l15-30rR\x0cnema-l15-50rR\x0cnema-l15-60rR\x0cnema-l21-20rR\x0cnema-l21-30rR\x0cnema-l22-20rR\x0cnema-l22-30rR\x0bnema-l5-15rR\x0bnema-l5-20rR\x0bnema-l5-30rR\x0bnema-l5-50rR\x0bnema-l6-15rR\x0bnema-l6-20rR\x0bnema-l6-30rR\x0bnema-l6-50rR\x14neutrik-powercon-20aR\x14neutrik-powercon-32aR\x16neutrik-powercon-true1R\x1aneutrik-powercon-true1-topR\x05otherR\nsaf-d-gridR\x13ubiquiti-smartpowerR\x05usb-aR\x05usb-cR\x0busb-micro-bH\x02R\x04type\x88\x01\x01\x12\x19\n\x05\x63olor\x18\x06 \x01(\tH\x03R\x05\x63olor\x88\x01\x01\x12\x37\n\npower_port\x18\x07 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x04R\tpowerPort\x88\x01\x01\x12.\n\x08\x66\x65\x65\x64_leg\x18\x08 \x01(\tB\x0e\xfa\x42\x0br\tR\x01\x41R\x01\x42R\x01\x43H\x05R\x07\x66\x65\x65\x64Leg\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\t \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\n \x01(\x08H\x07R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\x0b \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x0c \x03(\x0b\x32\'.diode.v1.PowerOutlet.CustomFieldsEntryR\x0c\x63ustomFields\x12=\n\x06status\x18\r \x01(\tB \xfa\x42\x1dr\x1bR\x08\x64isabledR\x07\x65nabledR\x06\x66\x61ultyH\x08R\x06status\x88\x01\x01\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\tR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x08\n\x06_colorB\r\n\x0b_power_portB\x0b\n\t_feed_legB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\t\n\x07_statusB\x08\n\x06_owner\"\xa9\x04\n\nPowerPanel\x12\"\n\x04site\x18\x01 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12\x33\n\x08location\x18\x02 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x08location\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12K\n\rcustom_fields\x18\x07 \x03(\x0b\x32&.diode.v1.PowerPanel.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0b\n\t_locationB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x96\x11\n\tPowerPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xb7\x0b\n\x04type\x18\x05 \x01(\tB\x9d\x0b\xfa\x42\x99\x0br\x96\x0bR\x07\x63s6361cR\x07\x63s6365cR\x07\x63s8165cR\x07\x63s8265cR\x07\x63s8365cR\x07\x63s8465cR\x0b\x64\x63-terminalR\thardwiredR\x11iec-60309-2p-e-4hR\x11iec-60309-2p-e-6hR\x11iec-60309-2p-e-9hR\x11iec-60309-3p-e-4hR\x11iec-60309-3p-e-6hR\x11iec-60309-3p-e-9hR\x13iec-60309-3p-n-e-4hR\x13iec-60309-3p-n-e-6hR\x13iec-60309-3p-n-e-9hR\x12iec-60309-p-n-e-4hR\x12iec-60309-p-n-e-6hR\x12iec-60309-p-n-e-9hR\riec-60320-c14R\riec-60320-c16R\riec-60320-c18R\riec-60320-c20R\riec-60320-c22R\x0ciec-60320-c6R\x0ciec-60320-c8R\x0biec-60906-1R\x05ita-cR\x05ita-eR\x06ita-efR\x05ita-fR\x05ita-gR\x05ita-hR\x05ita-iR\x05ita-jR\x05ita-kR\x05ita-lR\x05ita-mR\x05ita-nR\x05ita-oR\x13molex-micro-fit-1x2R\x13molex-micro-fit-2x2R\x13molex-micro-fit-2x3R\x13molex-micro-fit-2x4R\rnbr-14136-10aR\rnbr-14136-20aR\nnema-1-15pR\x0bnema-10-30pR\x0bnema-10-50pR\x0bnema-14-20pR\x0bnema-14-30pR\x0bnema-14-50pR\x0bnema-14-60pR\x0bnema-15-15pR\x0bnema-15-20pR\x0bnema-15-30pR\x0bnema-15-50pR\x0bnema-15-60pR\nnema-5-15pR\nnema-5-20pR\nnema-5-30pR\nnema-5-50pR\nnema-6-15pR\nnema-6-20pR\nnema-6-30pR\nnema-6-50pR\x0bnema-l1-15pR\x0cnema-l10-30pR\x0cnema-l14-20pR\x0cnema-l14-30pR\x0cnema-l14-50pR\x0cnema-l14-60pR\x0cnema-l15-20pR\x0cnema-l15-30pR\x0cnema-l15-50pR\x0cnema-l15-60pR\x0cnema-l21-20pR\x0cnema-l21-30pR\x0cnema-l22-20pR\x0cnema-l22-30pR\x0bnema-l5-15pR\x0bnema-l5-20pR\x0bnema-l5-30pR\x0bnema-l5-50pR\x0bnema-l6-15pR\x0bnema-l6-20pR\x0bnema-l6-30pR\x0bnema-l6-50pR\x13neutrik-powercon-20R\x13neutrik-powercon-32R\x16neutrik-powercon-true1R\x1aneutrik-powercon-true1-topR\x05otherR\nsaf-d-gridR\x13ubiquiti-smartpowerR\x07usb-3-bR\rusb-3-micro-bR\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bH\x02R\x04type\x88\x01\x01\x12&\n\x0cmaximum_draw\x18\x06 \x01(\x03H\x03R\x0bmaximumDraw\x88\x01\x01\x12*\n\x0e\x61llocated_draw\x18\x07 \x01(\x03H\x04R\rallocatedDraw\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\t \x01(\x08H\x06R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x0b \x03(\x0b\x32%.diode.v1.PowerPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x07R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x07\n\x05_typeB\x0f\n\r_maximum_drawB\x11\n\x0f_allocated_drawB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\xb8\x08\n\x06Prefix\x12\x16\n\x06prefix\x18\x01 \x01(\tR\x06prefix\x12$\n\x03vrf\x18\x02 \x01(\x0b\x32\r.diode.v1.VRFH\x01R\x03vrf\x88\x01\x01\x12;\n\x0escope_location\x18\x03 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12\x35\n\x0cscope_region\x18\x04 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x05 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\x06 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12-\n\x06tenant\x18\x07 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\'\n\x04vlan\x18\x08 \x01(\x0b\x32\x0e.diode.v1.VLANH\x03R\x04vlan\x88\x01\x01\x12K\n\x06status\x18\t \x01(\tB.\xfa\x42+r)R\x06\x61\x63tiveR\tcontainerR\ndeprecatedR\x08reservedH\x04R\x06status\x88\x01\x01\x12\'\n\x04role\x18\n \x01(\x0b\x32\x0e.diode.v1.RoleH\x05R\x04role\x88\x01\x01\x12\x1c\n\x07is_pool\x18\x0b \x01(\x08H\x06R\x06isPool\x88\x01\x01\x12(\n\rmark_utilized\x18\x0c \x01(\x08H\x07R\x0cmarkUtilized\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\r \x01(\tH\x08R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x10 \x03(\x0b\x32\".diode.v1.Prefix.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x06\n\x04_vrfB\t\n\x07_tenantB\x07\n\x05_vlanB\t\n\x07_statusB\x07\n\x05_roleB\n\n\x08_is_poolB\x10\n\x0e_mark_utilizedB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xad\x04\n\x08Provider\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x01R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x06 \x03(\x0b\x32$.diode.v1.Provider.CustomFieldsEntryR\x0c\x63ustomFields\x12\x35\n\x08\x61\x63\x63ounts\x18\x07 \x03(\x0b\x32\x19.diode.v1.ProviderAccountR\x08\x61\x63\x63ounts\x12!\n\x04\x61sns\x18\x08 \x03(\x0b\x32\r.diode.v1.ASNR\x04\x61sns\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xa5\x04\n\x0fProviderAccount\x12.\n\x08provider\x18\x01 \x01(\x0b\x32\x12.diode.v1.ProviderR\x08provider\x12\x17\n\x04name\x18\x02 \x01(\tH\x00R\x04name\x88\x01\x01\x12\x18\n\x07\x61\x63\x63ount\x18\x03 \x01(\tR\x07\x61\x63\x63ount\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12P\n\rcustom_fields\x18\x07 \x03(\x0b\x32+.diode.v1.ProviderAccount.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_nameB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xb0\x04\n\x0fProviderNetwork\x12.\n\x08provider\x18\x01 \x01(\x0b\x32\x12.diode.v1.ProviderR\x08provider\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\"\n\nservice_id\x18\x03 \x01(\tH\x00R\tserviceId\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12P\n\rcustom_fields\x18\x07 \x03(\x0b\x32+.diode.v1.ProviderNetwork.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0b_service_idB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xfc\x03\n\x03RIR\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\"\n\nis_private\x18\x03 \x01(\x08H\x00R\tisPrivate\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x44\n\rcustom_fields\x18\x06 \x03(\x0b\x32\x1f.diode.v1.RIR.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0b_is_privateB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\x97\x0f\n\x04Rack\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12$\n\x0b\x66\x61\x63ility_id\x18\x02 \x01(\tH\x00R\nfacilityId\x88\x01\x01\x12\"\n\x04site\x18\x03 \x01(\x0b\x32\x0e.diode.v1.SiteR\x04site\x12\x33\n\x08location\x18\x04 \x01(\x0b\x32\x12.diode.v1.LocationH\x01R\x08location\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12T\n\x06status\x18\x06 \x01(\tB7\xfa\x42\x34r2R\x06\x61\x63tiveR\tavailableR\ndeprecatedR\x07plannedR\x08reservedH\x03R\x06status\x88\x01\x01\x12+\n\x04role\x18\x07 \x01(\x0b\x32\x12.diode.v1.RackRoleH\x04R\x04role\x88\x01\x01\x12\x1b\n\x06serial\x18\x08 \x01(\tH\x05R\x06serial\x88\x01\x01\x12 \n\tasset_tag\x18\t \x01(\tH\x06R\x08\x61ssetTag\x88\x01\x01\x12\x34\n\track_type\x18\n \x01(\x0b\x32\x12.diode.v1.RackTypeH\x07R\x08rackType\x88\x01\x01\x12\x9d\x01\n\x0b\x66orm_factor\x18\x0b \x01(\tBw\xfa\x42trrR\x0c\x32-post-frameR\x0e\x34-post-cabinetR\x0c\x34-post-frameR\x0cwall-cabinetR\x15wall-cabinet-verticalR\nwall-frameR\x13wall-frame-verticalH\x08R\nformFactor\x88\x01\x01\x12(\n\x05width\x18\x0c \x01(\x03\x42\r\xfa\x42\n\"\x08\x30\n0\x13\x30\x15\x30\x17H\tR\x05width\x88\x01\x01\x12\x1e\n\x08u_height\x18\r \x01(\x03H\nR\x07uHeight\x88\x01\x01\x12(\n\rstarting_unit\x18\x0e \x01(\x03H\x0bR\x0cstartingUnit\x88\x01\x01\x12\x1b\n\x06weight\x18\x0f \x01(\x01H\x0cR\x06weight\x88\x01\x01\x12\"\n\nmax_weight\x18\x10 \x01(\x03H\rR\tmaxWeight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x11 \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x0eR\nweightUnit\x88\x01\x01\x12\"\n\ndesc_units\x18\x12 \x01(\x08H\x0fR\tdescUnits\x88\x01\x01\x12$\n\x0bouter_width\x18\x13 \x01(\x03H\x10R\nouterWidth\x88\x01\x01\x12$\n\x0bouter_depth\x18\x14 \x01(\x03H\x11R\nouterDepth\x88\x01\x01\x12\x31\n\nouter_unit\x18\x15 \x01(\tB\r\xfa\x42\nr\x08R\x02inR\x02mmH\x12R\touterUnit\x88\x01\x01\x12*\n\x0emounting_depth\x18\x16 \x01(\x03H\x13R\rmountingDepth\x88\x01\x01\x12\x42\n\x07\x61irflow\x18\x17 \x01(\tB#\xfa\x42 r\x1eR\rfront-to-rearR\rrear-to-frontH\x14R\x07\x61irflow\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x18 \x01(\tH\x15R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x19 \x01(\tH\x16R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x1a \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\x1b \x03(\x0b\x32 .diode.v1.Rack.CustomFieldsEntryR\x0c\x63ustomFields\x12&\n\x0couter_height\x18\x1c \x01(\x03H\x17R\x0bouterHeight\x88\x01\x01\x12\x39\n\x08metadata\x18\x1d \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x1e \x01(\x0b\x32\x0f.diode.v1.OwnerH\x18R\x05owner\x88\x01\x01\x12.\n\x05group\x18\x1f \x01(\x0b\x32\x13.diode.v1.RackGroupH\x19R\x05group\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_facility_idB\x0b\n\t_locationB\t\n\x07_tenantB\t\n\x07_statusB\x07\n\x05_roleB\t\n\x07_serialB\x0c\n\n_asset_tagB\x0c\n\n_rack_typeB\x0e\n\x0c_form_factorB\x08\n\x06_widthB\x0b\n\t_u_heightB\x10\n\x0e_starting_unitB\t\n\x07_weightB\r\n\x0b_max_weightB\x0e\n\x0c_weight_unitB\r\n\x0b_desc_unitsB\x0e\n\x0c_outer_widthB\x0e\n\x0c_outer_depthB\r\n\x0b_outer_unitB\x11\n\x0f_mounting_depthB\n\n\x08_airflowB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x0f\n\r_outer_heightB\x08\n\x06_ownerB\x08\n\x06_group\"\x83\x05\n\x0fRackReservation\x12\"\n\x04rack\x18\x01 \x01(\x0b\x32\x0e.diode.v1.RackR\x04rack\x12\x14\n\x05units\x18\x02 \x03(\x03R\x05units\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12 \n\x0b\x64\x65scription\x18\x04 \x01(\tR\x0b\x64\x65scription\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x01R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12P\n\rcustom_fields\x18\x07 \x03(\x0b\x32+.diode.v1.RackReservation.CustomFieldsEntryR\x0c\x63ustomFields\x12:\n\x06status\x18\x08 \x01(\tB\x1d\xfa\x42\x1ar\x18R\x06\x61\x63tiveR\x07pendingR\x05staleH\x02R\x06status\x88\x01\x01\x12\x39\n\x08metadata\x18\t \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\n \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12\"\n\x04user\x18\x0b \x01(\x0b\x32\x0e.diode.v1.UserR\x04user\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\x0b\n\t_commentsB\t\n\x07_statusB\x08\n\x06_owner\"\xf8\x03\n\x08RackRole\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x06 \x03(\x0b\x32$.diode.v1.RackRole.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xde\n\n\x08RackType\x12:\n\x0cmanufacturer\x18\x01 \x01(\x0b\x32\x16.diode.v1.ManufacturerR\x0cmanufacturer\x12\x14\n\x05model\x18\x02 \x01(\tR\x05model\x12\x12\n\x04slug\x18\x03 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x9d\x01\n\x0b\x66orm_factor\x18\x05 \x01(\tBw\xfa\x42trrR\x0c\x32-post-frameR\x0e\x34-post-cabinetR\x0c\x34-post-frameR\x0cwall-cabinetR\x15wall-cabinet-verticalR\nwall-frameR\x13wall-frame-verticalH\x01R\nformFactor\x88\x01\x01\x12(\n\x05width\x18\x06 \x01(\x03\x42\r\xfa\x42\n\"\x08\x30\n0\x13\x30\x15\x30\x17H\x02R\x05width\x88\x01\x01\x12\x1e\n\x08u_height\x18\x07 \x01(\x03H\x03R\x07uHeight\x88\x01\x01\x12(\n\rstarting_unit\x18\x08 \x01(\x03H\x04R\x0cstartingUnit\x88\x01\x01\x12\"\n\ndesc_units\x18\t \x01(\x08H\x05R\tdescUnits\x88\x01\x01\x12$\n\x0bouter_width\x18\n \x01(\x03H\x06R\nouterWidth\x88\x01\x01\x12$\n\x0bouter_depth\x18\x0b \x01(\x03H\x07R\nouterDepth\x88\x01\x01\x12\x31\n\nouter_unit\x18\x0c \x01(\tB\r\xfa\x42\nr\x08R\x02inR\x02mmH\x08R\touterUnit\x88\x01\x01\x12\x1b\n\x06weight\x18\r \x01(\x01H\tR\x06weight\x88\x01\x01\x12\"\n\nmax_weight\x18\x0e \x01(\x03H\nR\tmaxWeight\x88\x01\x01\x12:\n\x0bweight_unit\x18\x0f \x01(\tB\x14\xfa\x42\x11r\x0fR\x01gR\x02kgR\x02lbR\x02ozH\x0bR\nweightUnit\x88\x01\x01\x12*\n\x0emounting_depth\x18\x10 \x01(\x03H\x0cR\rmountingDepth\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x11 \x01(\tH\rR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x12 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x13 \x03(\x0b\x32$.diode.v1.RackType.CustomFieldsEntryR\x0c\x63ustomFields\x12&\n\x0couter_height\x18\x14 \x01(\x03H\x0eR\x0bouterHeight\x88\x01\x01\x12\x39\n\x08metadata\x18\x15 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x16 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0fR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x0e\n\x0c_form_factorB\x08\n\x06_widthB\x0b\n\t_u_heightB\x10\n\x0e_starting_unitB\r\n\x0b_desc_unitsB\x0e\n\x0c_outer_widthB\x0e\n\x0c_outer_depthB\r\n\x0b_outer_unitB\t\n\x07_weightB\r\n\x0b_max_weightB\x0e\n\x0c_weight_unitB\x11\n\x0f_mounting_depthB\x0b\n\t_commentsB\x0f\n\r_outer_heightB\x08\n\x06_owner\"\xf6\x08\n\x08RearPort\x12(\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12-\n\x06module\x18\x02 \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x06module\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\xc4\x03\n\x04type\x18\x05 \x01(\tB\xaf\x03\xfa\x42\xab\x03r\xa8\x03R\t110-punchR\x04\x34p2cR\x04\x34p4cR\x04\x36p2cR\x04\x36p4cR\x04\x36p6cR\x04\x38p2cR\x04\x38p4cR\x04\x38p6cR\x04\x38p8cR\x03\x62ncR\x02\x63sR\x01\x66R\x02\x66\x63R\x06\x66\x63-apcR\x05\x66\x63-pcR\x06\x66\x63-upcR\x04gg45R\x02lcR\x06lc-apcR\x05lc-pcR\x06lc-upcR\x03lshR\x07lsh-apcR\x06lsh-pcR\x07lsh-upcR\x03lx5R\x07lx5-apcR\x06lx5-pcR\x07lx5-upcR\x03mpoR\x05mrj21R\x04mtrjR\x01nR\x05otherR\x02scR\x06sc-apcR\x05sc-pcR\x06sc-upcR\x07sma-905R\x07sma-906R\x02snR\x06spliceR\x02stR\x07tera-1pR\x07tera-2pR\x07tera-4pR\x06urm-p2R\x06urm-p4R\x06urm-p8R\x05usb-aR\x05usb-bR\x05usb-cR\x0busb-micro-aR\x0cusb-micro-abR\x0busb-micro-bR\nusb-mini-aR\nusb-mini-bR\x04type\x12\x19\n\x05\x63olor\x18\x06 \x01(\tH\x02R\x05\x63olor\x88\x01\x01\x12!\n\tpositions\x18\x07 \x01(\x03H\x03R\tpositions\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x0emark_connected\x18\t \x01(\x08H\x05R\rmarkConnected\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12I\n\rcustom_fields\x18\x0b \x03(\x0b\x32$.diode.v1.RearPort.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_moduleB\x08\n\x06_labelB\x08\n\x06_colorB\x0c\n\n_positionsB\x0e\n\x0c_descriptionB\x11\n\x0f_mark_connectedB\x08\n\x06_owner\"\x89\x04\n\x06Region\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12-\n\x06parent\x18\x03 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x06 \x03(\x0b\x32\".diode.v1.Region.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xf3\x03\n\x04Role\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x1b\n\x06weight\x18\x03 \x01(\x03H\x00R\x06weight\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\x06 \x03(\x0b\x32 .diode.v1.Role.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_weightB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xff\x03\n\x0bRouteTarget\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12-\n\x06tenant\x18\x02 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.RouteTarget.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xf3\x07\n\x07Service\x12\x31\n\x06\x64\x65vice\x18\x01 \x01(\x0b\x32\x10.diode.v1.DeviceB\x02\x18\x01H\x01R\x06\x64\x65vice\x88\x01\x01\x12J\n\x0fvirtual_machine\x18\x02 \x01(\x0b\x32\x18.diode.v1.VirtualMachineB\x02\x18\x01H\x02R\x0evirtualMachine\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x36\n\x08protocol\x18\x04 \x01(\tB\x15\xfa\x42\x12r\x10R\x04sctpR\x03tcpR\x03udpH\x03R\x08protocol\x88\x01\x01\x12\x14\n\x05ports\x18\x05 \x03(\x03R\x05ports\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x08 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12H\n\rcustom_fields\x18\t \x03(\x0b\x32#.diode.v1.Service.CustomFieldsEntryR\x0c\x63ustomFields\x12\x35\n\x0bipaddresses\x18\n \x03(\x0b\x32\x13.diode.v1.IPAddressR\x0bipaddresses\x12\x44\n\x14parent_object_device\x18\x0b \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x12parentObjectDevice\x12N\n\x18parent_object_fhrp_group\x18\x0c \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x15parentObjectFhrpGroup\x12]\n\x1dparent_object_virtual_machine\x18\r \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x1aparentObjectVirtualMachine\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0f\n\rparent_objectB\t\n\x07_deviceB\x12\n\x10_virtual_machineB\x0b\n\t_protocolB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xc6\x08\n\x04Site\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12V\n\x06status\x18\x03 \x01(\tB9\xfa\x42\x36r4R\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x07plannedR\x07retiredR\x07stagingH\x00R\x06status\x88\x01\x01\x12-\n\x06region\x18\x04 \x01(\x0b\x32\x10.diode.v1.RegionH\x01R\x06region\x88\x01\x01\x12.\n\x05group\x18\x05 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x02R\x05group\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x03R\x06tenant\x88\x01\x01\x12\x1f\n\x08\x66\x61\x63ility\x18\x07 \x01(\tH\x04R\x08\x66\x61\x63ility\x88\x01\x01\x12 \n\ttime_zone\x18\x08 \x01(\tH\x05R\x08timeZone\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\t \x01(\tH\x06R\x0b\x64\x65scription\x88\x01\x01\x12.\n\x10physical_address\x18\n \x01(\tH\x07R\x0fphysicalAddress\x88\x01\x01\x12.\n\x10shipping_address\x18\x0b \x01(\tH\x08R\x0fshippingAddress\x88\x01\x01\x12\x1f\n\x08latitude\x18\x0c \x01(\x01H\tR\x08latitude\x88\x01\x01\x12!\n\tlongitude\x18\r \x01(\x01H\nR\tlongitude\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\x0bR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\x10 \x03(\x0b\x32 .diode.v1.Site.CustomFieldsEntryR\x0c\x63ustomFields\x12!\n\x04\x61sns\x18\x11 \x03(\x0b\x32\r.diode.v1.ASNR\x04\x61sns\x12\x39\n\x08metadata\x18\x12 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x13 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0cR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_statusB\t\n\x07_regionB\x08\n\x06_groupB\t\n\x07_tenantB\x0b\n\t_facilityB\x0c\n\n_time_zoneB\x0e\n\x0c_descriptionB\x13\n\x11_physical_addressB\x13\n\x11_shipping_addressB\x0b\n\t_latitudeB\x0c\n\n_longitudeB\x0b\n\t_commentsB\x08\n\x06_owner\"\x92\x04\n\tSiteGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x30\n\x06parent\x18\x03 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x06 \x03(\x0b\x32%.diode.v1.SiteGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd6\x0f\n\x03Tag\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1b\n\x06weight\x18\x05 \x01(\x03H\x02R\x06weight\x88\x01\x01\x12\xe7\r\n\x0cobject_types\x18\x06 \x03(\tB\xc3\r\xfa\x42\xbf\r\x92\x01\xbb\r\"\xb8\rr\xb5\rR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1f\x63ircuits.circuitgroupassignmentR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\ndcim.cableR\x10\x64\x63im.cablebundleR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x13\x65xtras.journalentryR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x19tenancy.contactassignmentR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkR\x0bobjectTypes\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x08\n\x06_colorB\x0e\n\x0c_descriptionB\t\n\x07_weight\"\x8b\x04\n\x06Tenant\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x30\n\x05group\x18\x03 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x05group\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x07 \x03(\x0b\x32\".diode.v1.Tenant.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_groupB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x98\x04\n\x0bTenantGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x32\n\x06parent\x18\x03 \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.TenantGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xe7\x06\n\x06Tunnel\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x38\n\x06status\x18\x02 \x01(\tB \xfa\x42\x1dr\x1bR\x06\x61\x63tiveR\x08\x64isabledR\x07plannedR\x06status\x12\x30\n\x05group\x18\x03 \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x05group\x88\x01\x01\x12v\n\rencapsulation\x18\x04 \x01(\tBP\xfa\x42MrKR\x03greR\x05ip-ipR\x0fipsec-transportR\x0cipsec-tunnelR\x04l2tpR\x07openvpnR\x04pptpR\twireguardR\rencapsulation\x12@\n\ripsec_profile\x18\x05 \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x01R\x0cipsecProfile\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12 \n\ttunnel_id\x18\x07 \x01(\x03H\x03R\x08tunnelId\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12G\n\rcustom_fields\x18\x0b \x03(\x0b\x32\".diode.v1.Tunnel.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_groupB\x10\n\x0e_ipsec_profileB\t\n\x07_tenantB\x0c\n\n_tunnel_idB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd9\x03\n\x0bTunnelGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x04 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x05 \x03(\x0b\x32\'.diode.v1.TunnelGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xf0\x43\n\x11TunnelTermination\x12(\n\x06tunnel\x18\x01 \x01(\x0b\x32\x10.diode.v1.TunnelR\x06tunnel\x12+\n\x04role\x18\x02 \x01(\tB\x17\xfa\x42\x14r\x12R\x03hubR\x04peerR\x05spokeR\x04role\x12\x38\n\x0ftermination_asn\x18\x03 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x0eterminationAsn\x12H\n\x15termination_asn_range\x18\x04 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x13terminationAsnRange\x12J\n\x15termination_aggregate\x18\x05 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x14terminationAggregate\x12>\n\x11termination_cable\x18\x06 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x10terminationCable\x12K\n\x16termination_cable_path\x18\x07 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x14terminationCablePath\x12\x64\n\x1dtermination_cable_termination\x18\x08 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x1bterminationCableTermination\x12\x44\n\x13termination_circuit\x18\t \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x12terminationCircuit\x12T\n\x19termination_circuit_group\x18\n \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x17terminationCircuitGroup\x12s\n$termination_circuit_group_assignment\x18\x0b \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R!terminationCircuitGroupAssignment\x12\x66\n\x1ftermination_circuit_termination\x18\x0c \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R\x1dterminationCircuitTermination\x12Q\n\x18termination_circuit_type\x18\r \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x16terminationCircuitType\x12\x44\n\x13termination_cluster\x18\x0e \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x12terminationCluster\x12T\n\x19termination_cluster_group\x18\x0f \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x17terminationClusterGroup\x12Q\n\x18termination_cluster_type\x18\x10 \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x16terminationClusterType\x12Q\n\x18termination_console_port\x18\x11 \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x16terminationConsolePort\x12\x64\n\x1ftermination_console_server_port\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1cterminationConsoleServerPort\x12\x44\n\x13termination_contact\x18\x13 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x12terminationContact\x12\x63\n\x1etermination_contact_assignment\x18\x14 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x1cterminationContactAssignment\x12T\n\x19termination_contact_group\x18\x15 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x17terminationContactGroup\x12Q\n\x18termination_contact_role\x18\x16 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x16terminationContactRole\x12\x41\n\x12termination_device\x18\x17 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x11terminationDevice\x12K\n\x16termination_device_bay\x18\x18 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x14terminationDeviceBay\x12N\n\x17termination_device_role\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x15terminationDeviceRole\x12N\n\x17termination_device_type\x18\x1a \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x15terminationDeviceType\x12K\n\x16termination_fhrp_group\x18\x1b \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x14terminationFhrpGroup\x12j\n!termination_fhrp_group_assignment\x18\x1c \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R\x1eterminationFhrpGroupAssignment\x12K\n\x16termination_front_port\x18\x1d \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x14terminationFrontPort\x12K\n\x16termination_ike_policy\x18\x1e \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x14terminationIkePolicy\x12Q\n\x18termination_ike_proposal\x18\x1f \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x16terminationIkeProposal\x12K\n\x16termination_ip_address\x18 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x14terminationIpAddress\x12\x45\n\x14termination_ip_range\x18! \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x12terminationIpRange\x12R\n\x19termination_ip_sec_policy\x18\" \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x16terminationIpSecPolicy\x12U\n\x1atermination_ip_sec_profile\x18# \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x17terminationIpSecProfile\x12X\n\x1btermination_ip_sec_proposal\x18$ \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x18terminationIpSecProposal\x12J\n\x15termination_interface\x18% \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x14terminationInterface\x12W\n\x1atermination_inventory_item\x18& \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x18terminationInventoryItem\x12\x64\n\x1ftermination_inventory_item_role\x18\' \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x1cterminationInventoryItemRole\x12>\n\x11termination_l2vpn\x18( \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x10terminationL2vpn\x12`\n\x1dtermination_l2vpn_termination\x18) \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x1bterminationL2vpnTermination\x12G\n\x14termination_location\x18* \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x13terminationLocation\x12N\n\x17termination_mac_address\x18+ \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x15terminationMacAddress\x12S\n\x18termination_manufacturer\x18, \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x17terminationManufacturer\x12\x41\n\x12termination_module\x18- \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x11terminationModule\x12K\n\x16termination_module_bay\x18. \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x14terminationModuleBay\x12N\n\x17termination_module_type\x18/ \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x15terminationModuleType\x12G\n\x14termination_platform\x18\x30 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x13terminationPlatform\x12K\n\x16termination_power_feed\x18\x31 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x14terminationPowerFeed\x12Q\n\x18termination_power_outlet\x18\x32 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x16terminationPowerOutlet\x12N\n\x17termination_power_panel\x18\x33 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x15terminationPowerPanel\x12K\n\x16termination_power_port\x18\x34 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x14terminationPowerPort\x12\x41\n\x12termination_prefix\x18\x35 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x11terminationPrefix\x12G\n\x14termination_provider\x18\x36 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x13terminationProvider\x12]\n\x1ctermination_provider_account\x18\x37 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x1aterminationProviderAccount\x12]\n\x1ctermination_provider_network\x18\x38 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1aterminationProviderNetwork\x12\x38\n\x0ftermination_rir\x18\x39 \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x0eterminationRir\x12;\n\x10termination_rack\x18: \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x0fterminationRack\x12]\n\x1ctermination_rack_reservation\x18; \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x1aterminationRackReservation\x12H\n\x15termination_rack_role\x18< \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x13terminationRackRole\x12H\n\x15termination_rack_type\x18= \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x13terminationRackType\x12H\n\x15termination_rear_port\x18> \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x13terminationRearPort\x12\x41\n\x12termination_region\x18? \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x11terminationRegion\x12;\n\x10termination_role\x18@ \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x0fterminationRole\x12Q\n\x18termination_route_target\x18\x41 \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x16terminationRouteTarget\x12\x44\n\x13termination_service\x18\x42 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x12terminationService\x12;\n\x10termination_site\x18\x43 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x0fterminationSite\x12K\n\x16termination_site_group\x18\x44 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x14terminationSiteGroup\x12\x38\n\x0ftermination_tag\x18\x45 \x01(\x0b\x32\r.diode.v1.TagH\x00R\x0eterminationTag\x12\x41\n\x12termination_tenant\x18\x46 \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x11terminationTenant\x12Q\n\x18termination_tenant_group\x18G \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x16terminationTenantGroup\x12\x41\n\x12termination_tunnel\x18H \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x11terminationTunnel\x12Q\n\x18termination_tunnel_group\x18I \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x16terminationTunnelGroup\x12\x63\n\x1etermination_tunnel_termination\x18J \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1cterminationTunnelTermination\x12;\n\x10termination_vlan\x18K \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x0fterminationVlan\x12K\n\x16termination_vlan_group\x18L \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x14terminationVlanGroup\x12p\n#termination_vlan_translation_policy\x18M \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R terminationVlanTranslationPolicy\x12j\n!termination_vlan_translation_rule\x18N \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R\x1eterminationVlanTranslationRule\x12Q\n\x18termination_vm_interface\x18O \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x16terminationVmInterface\x12\x38\n\x0ftermination_vrf\x18P \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x0eterminationVrf\x12Z\n\x1btermination_virtual_chassis\x18Q \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x19terminationVirtualChassis\x12Z\n\x1btermination_virtual_circuit\x18R \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x19terminationVirtualCircuit\x12|\n\'termination_virtual_circuit_termination\x18S \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R$terminationVirtualCircuitTermination\x12g\n termination_virtual_circuit_type\x18T \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R\x1dterminationVirtualCircuitType\x12m\n\"termination_virtual_device_context\x18U \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\x1fterminationVirtualDeviceContext\x12Q\n\x18termination_virtual_disk\x18V \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x16terminationVirtualDisk\x12Z\n\x1btermination_virtual_machine\x18W \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x19terminationVirtualMachine\x12Q\n\x18termination_wireless_lan\x18X \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x16terminationWirelessLan\x12\x61\n\x1etermination_wireless_lan_group\x18Y \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x1bterminationWirelessLanGroup\x12T\n\x19termination_wireless_link\x18Z \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x17terminationWirelessLink\x12Q\n\x18termination_custom_field\x18^ \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x16terminationCustomField\x12n\n#termination_custom_field_choice_set\x18_ \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\x1fterminationCustomFieldChoiceSet\x12T\n\x19termination_journal_entry\x18` \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x17terminationJournalEntry\x12\x64\n\x1ftermination_module_type_profile\x18\x61 \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x1cterminationModuleTypeProfile\x12N\n\x17termination_custom_link\x18\x62 \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x15terminationCustomLink\x12>\n\x11termination_owner\x18\x64 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x10terminationOwner\x12N\n\x17termination_owner_group\x18\x65 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x15terminationOwnerGroup\x12Q\n\x18termination_cable_bundle\x18\x66 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x16terminationCableBundle\x12K\n\x16termination_rack_group\x18g \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x14terminationRackGroup\x12T\n\x19termination_script_module\x18h \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x17terminationScriptModule\x12g\n termination_virtual_machine_type\x18i \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R\x1dterminationVirtualMachineType\x12;\n\x10termination_user\x18j \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\x0fterminationUser\x12\x37\n\noutside_ip\x18[ \x01(\x0b\x32\x13.diode.v1.IPAddressH\x01R\toutsideIp\x88\x01\x01\x12!\n\x04tags\x18\\ \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18] \x03(\x0b\x32-.diode.v1.TunnelTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x63 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0bterminationB\r\n\x0b_outside_ip\"\xf6\x06\n\x04VLAN\x12\'\n\x04site\x18\x01 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x04site\x88\x01\x01\x12.\n\x05group\x18\x02 \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x01R\x05group\x88\x01\x01\x12\x10\n\x03vid\x18\x03 \x01(\x03R\x03vid\x12\x12\n\x04name\x18\x04 \x01(\tR\x04name\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12@\n\x06status\x18\x06 \x01(\tB#\xfa\x42 r\x1eR\x06\x61\x63tiveR\ndeprecatedR\x08reservedH\x03R\x06status\x88\x01\x01\x12\'\n\x04role\x18\x07 \x01(\x0b\x32\x0e.diode.v1.RoleH\x04R\x04role\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12\x35\n\tqinq_role\x18\t \x01(\tB\x13\xfa\x42\x10r\x0eR\x05\x63vlanR\x05svlanH\x06R\x08qinqRole\x88\x01\x01\x12\x32\n\nqinq_svlan\x18\n \x01(\x0b\x32\x0e.diode.v1.VLANH\x07R\tqinqSvlan\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0b \x01(\tH\x08R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x45\n\rcustom_fields\x18\r \x03(\x0b\x32 .diode.v1.VLAN.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0e \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0f \x01(\x0b\x32\x0f.diode.v1.OwnerH\tR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_siteB\x08\n\x06_groupB\t\n\x07_tenantB\t\n\x07_statusB\x07\n\x05_roleB\x0e\n\x0c_descriptionB\x0c\n\n_qinq_roleB\r\n\x0b_qinq_svlanB\x0b\n\t_commentsB\x08\n\x06_owner\"\x93\x08\n\tVLANGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x38\n\rscope_cluster\x18\x03 \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x0cscopeCluster\x12H\n\x13scope_cluster_group\x18\x04 \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x11scopeClusterGroup\x12;\n\x0escope_location\x18\x05 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12/\n\nscope_rack\x18\x06 \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\tscopeRack\x12\x35\n\x0cscope_region\x18\x07 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\t \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12?\n\x10scope_rack_group\x18\x12 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x0escopeRackGroup\x12\x1d\n\nvid_ranges\x18\n \x03(\x03R\tvidRanges\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x0c \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\r \x03(\x0b\x32%.diode.v1.VLANGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12-\n\x06tenant\x18\x0e \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12\x39\n\x08metadata\x18\x0f \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x10 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x11 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x0e\n\x0c_descriptionB\t\n\x07_tenantB\x08\n\x06_ownerB\x0b\n\t_comments\"\x81\x02\n\x15VLANTranslationPolicy\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x04 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xfc\x01\n\x13VLANTranslationRule\x12\x37\n\x06policy\x18\x01 \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyR\x06policy\x12\x1b\n\tlocal_vid\x18\x02 \x01(\x03R\x08localVid\x12\x1d\n\nremote_vid\x18\x03 \x01(\x03R\tremoteVid\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x05 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0e\n\x0c_description\"\xbc\t\n\x0bVMInterface\x12\x41\n\x0fvirtual_machine\x18\x01 \x01(\x0b\x32\x18.diode.v1.VirtualMachineR\x0evirtualMachine\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x1d\n\x07\x65nabled\x18\x03 \x01(\x08H\x00R\x07\x65nabled\x88\x01\x01\x12\x32\n\x06parent\x18\x04 \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x01R\x06parent\x88\x01\x01\x12\x32\n\x06\x62ridge\x18\x05 \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x02R\x06\x62ridge\x88\x01\x01\x12\x15\n\x03mtu\x18\x06 \x01(\x03H\x03R\x03mtu\x88\x01\x01\x12I\n\x13primary_mac_address\x18\x07 \x01(\x0b\x32\x14.diode.v1.MACAddressH\x04R\x11primaryMacAddress\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x05R\x0b\x64\x65scription\x88\x01\x01\x12\x42\n\x04mode\x18\t \x01(\tB)\xfa\x42&r$R\x06\x61\x63\x63\x65ssR\x06q-in-qR\x06taggedR\ntagged-allH\x06R\x04mode\x88\x01\x01\x12\x38\n\runtagged_vlan\x18\n \x01(\x0b\x32\x0e.diode.v1.VLANH\x07R\x0cuntaggedVlan\x88\x01\x01\x12\x32\n\nqinq_svlan\x18\x0b \x01(\x0b\x32\x0e.diode.v1.VLANH\x08R\tqinqSvlan\x88\x01\x01\x12\\\n\x17vlan_translation_policy\x18\x0c \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\tR\x15vlanTranslationPolicy\x88\x01\x01\x12$\n\x03vrf\x18\r \x01(\x0b\x32\r.diode.v1.VRFH\nR\x03vrf\x88\x01\x01\x12!\n\x04tags\x18\x0e \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x0f \x03(\x0b\x32\'.diode.v1.VMInterface.CustomFieldsEntryR\x0c\x63ustomFields\x12\x31\n\x0ctagged_vlans\x18\x10 \x03(\x0b\x32\x0e.diode.v1.VLANR\x0btaggedVlans\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x0bR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\n\n\x08_enabledB\t\n\x07_parentB\t\n\x07_bridgeB\x06\n\x04_mtuB\x16\n\x14_primary_mac_addressB\x0e\n\x0c_descriptionB\x07\n\x05_modeB\x10\n\x0e_untagged_vlanB\r\n\x0b_qinq_svlanB\x1a\n\x18_vlan_translation_policyB\x06\n\x04_vrfB\x08\n\x06_owner\"\xc6\x05\n\x03VRF\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x13\n\x02rd\x18\x02 \x01(\tH\x00R\x02rd\x88\x01\x01\x12-\n\x06tenant\x18\x03 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12*\n\x0e\x65nforce_unique\x18\x04 \x01(\x08H\x02R\renforceUnique\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x05 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x06 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x07 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12\x44\n\rcustom_fields\x18\x08 \x03(\x0b\x32\x1f.diode.v1.VRF.CustomFieldsEntryR\x0c\x63ustomFields\x12<\n\x0eimport_targets\x18\t \x03(\x0b\x32\x15.diode.v1.RouteTargetR\rimportTargets\x12<\n\x0e\x65xport_targets\x18\n \x03(\x0b\x32\x15.diode.v1.RouteTargetR\rexportTargets\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x05\n\x03_rdB\t\n\x07_tenantB\x11\n\x0f_enforce_uniqueB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xad\x04\n\x0eVirtualChassis\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1b\n\x06\x64omain\x18\x02 \x01(\tH\x00R\x06\x64omain\x88\x01\x01\x12-\n\x06master\x18\x03 \x01(\x0b\x32\x10.diode.v1.DeviceH\x01R\x06master\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12O\n\rcustom_fields\x18\x07 \x03(\x0b\x32*.diode.v1.VirtualChassis.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_domainB\t\n\x07_masterB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xd2\x06\n\x0eVirtualCircuit\x12\x10\n\x03\x63id\x18\x01 \x01(\tR\x03\x63id\x12\x44\n\x10provider_network\x18\x02 \x01(\x0b\x32\x19.diode.v1.ProviderNetworkR\x0fproviderNetwork\x12I\n\x10provider_account\x18\x03 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x0fproviderAccount\x88\x01\x01\x12\x30\n\x04type\x18\x04 \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeR\x04type\x12j\n\x06status\x18\x05 \x01(\tBM\xfa\x42JrHR\x06\x61\x63tiveR\x0e\x64\x65\x63ommissionedR\x0e\x64\x65provisioningR\x07offlineR\x07plannedR\x0cprovisioningH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x06 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x07 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x04R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12O\n\rcustom_fields\x18\n \x03(\x0b\x32*.diode.v1.VirtualCircuit.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0c \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_provider_accountB\t\n\x07_statusB\t\n\x07_tenantB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\x9a\x04\n\x19VirtualCircuitTermination\x12\x41\n\x0fvirtual_circuit\x18\x01 \x01(\x0b\x32\x18.diode.v1.VirtualCircuitR\x0evirtualCircuit\x12\x30\n\x04role\x18\x02 \x01(\tB\x17\xfa\x42\x14r\x12R\x03hubR\x04peerR\x05spokeH\x00R\x04role\x88\x01\x01\x12\x31\n\tinterface\x18\x03 \x01(\x0b\x32\x13.diode.v1.InterfaceR\tinterface\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12Z\n\rcustom_fields\x18\x06 \x03(\x0b\x32\x35.diode.v1.VirtualCircuitTermination.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_roleB\x0e\n\x0c_description\"\x8c\x04\n\x12VirtualCircuitType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x19\n\x05\x63olor\x18\x03 \x01(\tH\x00R\x05\x63olor\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12S\n\rcustom_fields\x18\x06 \x03(\x0b\x32..diode.v1.VirtualCircuitType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x02R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x03R\x08\x63omments\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x08\n\x06_colorB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xbe\x06\n\x14VirtualDeviceContext\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12(\n\x06\x64\x65vice\x18\x02 \x01(\x0b\x32\x10.diode.v1.DeviceR\x06\x64\x65vice\x12#\n\nidentifier\x18\x03 \x01(\x03H\x00R\nidentifier\x88\x01\x01\x12-\n\x06tenant\x18\x04 \x01(\x0b\x32\x10.diode.v1.TenantH\x01R\x06tenant\x88\x01\x01\x12\x39\n\x0bprimary_ip4\x18\x05 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x02R\nprimaryIp4\x88\x01\x01\x12\x39\n\x0bprimary_ip6\x18\x06 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x03R\nprimaryIp6\x88\x01\x01\x12\x37\n\x06status\x18\x07 \x01(\tB\x1f\xfa\x42\x1cr\x1aR\x06\x61\x63tiveR\x07offlineR\x07plannedR\x06status\x12%\n\x0b\x64\x65scription\x18\x08 \x01(\tH\x04R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\t \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\n \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12U\n\rcustom_fields\x18\x0b \x03(\x0b\x32\x30.diode.v1.VirtualDeviceContext.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0c \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\r \x01(\x0b\x32\x0f.diode.v1.OwnerH\x06R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\r\n\x0b_identifierB\t\n\x07_tenantB\x0e\n\x0c_primary_ip4B\x0e\n\x0c_primary_ip6B\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xee\x03\n\x0bVirtualDisk\x12\x41\n\x0fvirtual_machine\x18\x01 \x01(\x0b\x32\x18.diode.v1.VirtualMachineR\x0evirtualMachine\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x12\n\x04size\x18\x04 \x01(\x03R\x04size\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.VirtualDisk.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_owner\"\x8c\x0b\n\x0eVirtualMachine\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x65\n\x06status\x18\x02 \x01(\tBH\xfa\x42\x45rCR\x06\x61\x63tiveR\x0f\x64\x65\x63ommissioningR\x06\x66\x61iledR\x07offlineR\x06pausedR\x07plannedR\x06stagedH\x00R\x06status\x88\x01\x01\x12\'\n\x04site\x18\x03 \x01(\x0b\x32\x0e.diode.v1.SiteH\x01R\x04site\x88\x01\x01\x12\x30\n\x07\x63luster\x18\x04 \x01(\x0b\x32\x11.diode.v1.ClusterH\x02R\x07\x63luster\x88\x01\x01\x12-\n\x06\x64\x65vice\x18\x05 \x01(\x0b\x32\x10.diode.v1.DeviceH\x03R\x06\x64\x65vice\x88\x01\x01\x12\x1b\n\x06serial\x18\x06 \x01(\tH\x04R\x06serial\x88\x01\x01\x12-\n\x04role\x18\x07 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x05R\x04role\x88\x01\x01\x12-\n\x06tenant\x18\x08 \x01(\x0b\x32\x10.diode.v1.TenantH\x06R\x06tenant\x88\x01\x01\x12\x33\n\x08platform\x18\t \x01(\x0b\x32\x12.diode.v1.PlatformH\x07R\x08platform\x88\x01\x01\x12\x39\n\x0bprimary_ip4\x18\n \x01(\x0b\x32\x13.diode.v1.IPAddressH\x08R\nprimaryIp4\x88\x01\x01\x12\x39\n\x0bprimary_ip6\x18\x0b \x01(\x0b\x32\x13.diode.v1.IPAddressH\tR\nprimaryIp6\x88\x01\x01\x12\x19\n\x05vcpus\x18\x0c \x01(\x01H\nR\x05vcpus\x88\x01\x01\x12\x1b\n\x06memory\x18\r \x01(\x03H\x0bR\x06memory\x88\x01\x01\x12\x17\n\x04\x64isk\x18\x0e \x01(\x03H\x0cR\x04\x64isk\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0f \x01(\tH\rR\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x10 \x01(\tH\x0eR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x11 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12O\n\rcustom_fields\x18\x12 \x03(\x0b\x32*.diode.v1.VirtualMachine.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x13 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12\x42\n\rstart_on_boot\x18\x14 \x01(\tB\x19\xfa\x42\x16r\x14R\tlaststateR\x03offR\x02onH\x0fR\x0bstartOnBoot\x88\x01\x01\x12*\n\x05owner\x18\x15 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x10R\x05owner\x88\x01\x01\x12S\n\x14virtual_machine_type\x18\x16 \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x11R\x12virtualMachineType\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_statusB\x07\n\x05_siteB\n\n\x08_clusterB\t\n\x07_deviceB\t\n\x07_serialB\x07\n\x05_roleB\t\n\x07_tenantB\x0b\n\t_platformB\x0e\n\x0c_primary_ip4B\x0e\n\x0c_primary_ip6B\x08\n\x06_vcpusB\t\n\x07_memoryB\x07\n\x05_diskB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x10\n\x0e_start_on_bootB\x08\n\x06_ownerB\x17\n\x15_virtual_machine_type\"\x93\t\n\x0bWirelessLAN\x12\x12\n\x04ssid\x18\x01 \x01(\tR\x04ssid\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12\x35\n\x05group\x18\x03 \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x02R\x05group\x88\x01\x01\x12J\n\x06status\x18\x04 \x01(\tB-\xfa\x42*r(R\x06\x61\x63tiveR\ndeprecatedR\x08\x64isabledR\x08reservedH\x03R\x06status\x88\x01\x01\x12\'\n\x04vlan\x18\x05 \x01(\x0b\x32\x0e.diode.v1.VLANH\x04R\x04vlan\x88\x01\x01\x12;\n\x0escope_location\x18\x06 \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\rscopeLocation\x12\x35\n\x0cscope_region\x18\x07 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x0bscopeRegion\x12/\n\nscope_site\x18\x08 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\tscopeSite\x12?\n\x10scope_site_group\x18\t \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x0escopeSiteGroup\x12-\n\x06tenant\x18\n \x01(\x0b\x32\x10.diode.v1.TenantH\x05R\x06tenant\x88\x01\x01\x12P\n\tauth_type\x18\x0b \x01(\tB.\xfa\x42+r)R\x04openR\x03wepR\x0ewpa-enterpriseR\x0cwpa-personalH\x06R\x08\x61uthType\x88\x01\x01\x12<\n\x0b\x61uth_cipher\x18\x0c \x01(\tB\x16\xfa\x42\x13r\x11R\x03\x61\x65sR\x04\x61utoR\x04tkipH\x07R\nauthCipher\x88\x01\x01\x12\x1e\n\x08\x61uth_psk\x18\r \x01(\tH\x08R\x07\x61uthPsk\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0e \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x0f \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x10 \x03(\x0b\x32\'.diode.v1.WirelessLAN.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x11 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x12 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05scopeB\x0e\n\x0c_descriptionB\x08\n\x06_groupB\t\n\x07_statusB\x07\n\x05_vlanB\t\n\x07_tenantB\x0c\n\n_auth_typeB\x0e\n\x0c_auth_cipherB\x0b\n\t_auth_pskB\x0b\n\t_commentsB\x08\n\x06_owner\"\xa7\x04\n\x10WirelessLANGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x37\n\x06parent\x18\x03 \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x06parent\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x04 \x01(\tH\x01R\x0b\x64\x65scription\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12Q\n\rcustom_fields\x18\x06 \x03(\x0b\x32,.diode.v1.WirelessLANGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x1f\n\x08\x63omments\x18\x07 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\t \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\t\n\x07_parentB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xaa\x08\n\x0cWirelessLink\x12\x34\n\x0binterface_a\x18\x01 \x01(\x0b\x32\x13.diode.v1.InterfaceR\ninterfaceA\x12\x34\n\x0binterface_b\x18\x02 \x01(\x0b\x32\x13.diode.v1.InterfaceR\ninterfaceB\x12\x17\n\x04ssid\x18\x03 \x01(\tH\x00R\x04ssid\x88\x01\x01\x12G\n\x06status\x18\x04 \x01(\tB*\xfa\x42\'r%R\tconnectedR\x0f\x64\x65\x63ommissioningR\x07plannedH\x01R\x06status\x88\x01\x01\x12-\n\x06tenant\x18\x05 \x01(\x0b\x32\x10.diode.v1.TenantH\x02R\x06tenant\x88\x01\x01\x12P\n\tauth_type\x18\x06 \x01(\tB.\xfa\x42+r)R\x04openR\x03wepR\x0ewpa-enterpriseR\x0cwpa-personalH\x03R\x08\x61uthType\x88\x01\x01\x12<\n\x0b\x61uth_cipher\x18\x07 \x01(\tB\x16\xfa\x42\x13r\x11R\x03\x61\x65sR\x04\x61utoR\x04tkipH\x04R\nauthCipher\x88\x01\x01\x12\x1e\n\x08\x61uth_psk\x18\x08 \x01(\tH\x05R\x07\x61uthPsk\x88\x01\x01\x12\x1f\n\x08\x64istance\x18\t \x01(\x01H\x06R\x08\x64istance\x88\x01\x01\x12>\n\rdistance_unit\x18\n \x01(\tB\x14\xfa\x42\x11r\x0fR\x02\x66tR\x02kmR\x01mR\x02miH\x07R\x0c\x64istanceUnit\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x0b \x01(\tH\x08R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x0c \x01(\tH\tR\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\r \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18\x0e \x03(\x0b\x32(.diode.v1.WirelessLink.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0f \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x10 \x01(\x0b\x32\x0f.diode.v1.OwnerH\nR\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x07\n\x05_ssidB\t\n\x07_statusB\t\n\x07_tenantB\x0c\n\n_auth_typeB\x0e\n\x0c_auth_cipherB\x0b\n\t_auth_pskB\x0b\n\t_distanceB\x10\n\x0e_distance_unitB\x0e\n\x0c_descriptionB\x0b\n\t_commentsB\x08\n\x06_owner\"\xe8(\n\x0b\x43ustomField\x12\x89\x01\n\x04type\x18\x01 \x01(\tBu\xfa\x42rrpR\x07\x62ooleanR\x04\x64\x61teR\x08\x64\x61tetimeR\x07\x64\x65\x63imalR\x07integerR\x04jsonR\x08longtextR\x0bmultiobjectR\x0bmultiselectR\x06objectR\x06selectR\x04textR\x03urlR\x04type\x12\xa9\x0f\n\x13related_object_type\x18\x02 \x01(\tB\xf3\x0e\xfa\x42\xef\x0er\xec\x0eR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1f\x63ircuits.circuitgroupassignmentR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\x10\x63ore.managedfileR\ndcim.cableR\x10\x64\x63im.cablebundleR\x0e\x64\x63im.cablepathR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x12\x65xtras.customfieldR\x1b\x65xtras.customfieldchoicesetR\x11\x65xtras.customlinkR\x13\x65xtras.journalentryR\nextras.tagR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x18ipam.fhrpgroupassignmentR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x19tenancy.contactassignmentR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x0busers.ownerR\x10users.ownergroupR\nusers.userR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkH\x00R\x11relatedObjectType\x88\x01\x01\x12\x12\n\x04name\x18\x03 \x01(\tR\x04name\x12\x19\n\x05label\x18\x04 \x01(\tH\x01R\x05label\x88\x01\x01\x12\"\n\ngroup_name\x18\x05 \x01(\tH\x02R\tgroupName\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12\x1f\n\x08required\x18\x07 \x01(\x08H\x04R\x08required\x88\x01\x01\x12\x1b\n\x06unique\x18\x08 \x01(\x08H\x05R\x06unique\x88\x01\x01\x12(\n\rsearch_weight\x18\t \x01(\x03H\x06R\x0csearchWeight\x88\x01\x01\x12\x45\n\x0c\x66ilter_logic\x18\n \x01(\tB\x1d\xfa\x42\x1ar\x18R\x08\x64isabledR\x05\x65xactR\x05looseH\x07R\x0b\x66ilterLogic\x88\x01\x01\x12\x41\n\nui_visible\x18\x0b \x01(\tB\x1d\xfa\x42\x1ar\x18R\x06\x61lwaysR\x06hiddenR\x06if-setH\x08R\tuiVisible\x88\x01\x01\x12<\n\x0bui_editable\x18\x0c \x01(\tB\x16\xfa\x42\x13r\x11R\x06hiddenR\x02noR\x03yesH\tR\nuiEditable\x88\x01\x01\x12&\n\x0cis_cloneable\x18\r \x01(\x08H\nR\x0bisCloneable\x88\x01\x01\x12\x1d\n\x07\x64\x65\x66\x61ult\x18\x0e \x01(\tH\x0bR\x07\x64\x65\x66\x61ult\x88\x01\x01\x12\x37\n\x15related_object_filter\x18\x0f \x01(\tH\x0cR\x13relatedObjectFilter\x88\x01\x01\x12\x1b\n\x06weight\x18\x10 \x01(\x03H\rR\x06weight\x88\x01\x01\x12\x32\n\x12validation_minimum\x18\x11 \x01(\x01H\x0eR\x11validationMinimum\x88\x01\x01\x12\x32\n\x12validation_maximum\x18\x12 \x01(\x01H\x0fR\x11validationMaximum\x88\x01\x01\x12.\n\x10validation_regex\x18\x13 \x01(\tH\x10R\x0fvalidationRegex\x88\x01\x01\x12\x42\n\nchoice_set\x18\x14 \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x11R\tchoiceSet\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x15 \x01(\tH\x12R\x08\x63omments\x88\x01\x01\x12\xe7\r\n\x0cobject_types\x18\x16 \x03(\tB\xc3\r\xfa\x42\xbf\r\x92\x01\xbb\r\"\xb8\rr\xb5\rR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1f\x63ircuits.circuitgroupassignmentR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\ndcim.cableR\x10\x64\x63im.cablebundleR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x13\x65xtras.journalentryR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x19tenancy.contactassignmentR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkR\x0bobjectTypes\x12\x39\n\x08metadata\x18\x17 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x18 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x13R\x05owner\x88\x01\x01\x12\x30\n\x11validation_schema\x18\x19 \x01(\tH\x14R\x10validationSchema\x88\x01\x01\x42\x16\n\x14_related_object_typeB\x08\n\x06_labelB\r\n\x0b_group_nameB\x0e\n\x0c_descriptionB\x0b\n\t_requiredB\t\n\x07_uniqueB\x10\n\x0e_search_weightB\x0f\n\r_filter_logicB\r\n\x0b_ui_visibleB\x0e\n\x0c_ui_editableB\x0f\n\r_is_cloneableB\n\n\x08_defaultB\x18\n\x16_related_object_filterB\t\n\x07_weightB\x15\n\x13_validation_minimumB\x15\n\x13_validation_maximumB\x13\n\x11_validation_regexB\r\n\x0b_choice_setB\x0b\n\t_commentsB\x08\n\x06_ownerB\x14\n\x12_validation_schema\"\xdf\x03\n\x14\x43ustomFieldChoiceSet\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12H\n\x0c\x62\x61se_choices\x18\x03 \x01(\tB \xfa\x42\x1dr\x1bR\x04IATAR\x08ISO_3166R\tUN_LOCODEH\x01R\x0b\x62\x61seChoices\x88\x01\x01\x12\x36\n\x14order_alphabetically\x18\x04 \x01(\x08H\x02R\x13orderAlphabetically\x88\x01\x01\x12#\n\rextra_choices\x18\x05 \x03(\tR\x0c\x65xtraChoices\x12\x39\n\x08metadata\x18\x06 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x12(\n\rchoice_colors\x18\x08 \x01(\tH\x04R\x0c\x63hoiceColors\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_base_choicesB\x17\n\x15_order_alphabeticallyB\x08\n\x06_ownerB\x10\n\x0e_choice_colors\"\xb0I\n\x0cJournalEntry\x12?\n\x13\x61ssigned_object_asn\x18\x01 \x01(\x0b\x32\r.diode.v1.ASNH\x00R\x11\x61ssignedObjectAsn\x12O\n\x19\x61ssigned_object_asn_range\x18\x02 \x01(\x0b\x32\x12.diode.v1.ASNRangeH\x00R\x16\x61ssignedObjectAsnRange\x12Q\n\x19\x61ssigned_object_aggregate\x18\x03 \x01(\x0b\x32\x13.diode.v1.AggregateH\x00R\x17\x61ssignedObjectAggregate\x12\x45\n\x15\x61ssigned_object_cable\x18\x04 \x01(\x0b\x32\x0f.diode.v1.CableH\x00R\x13\x61ssignedObjectCable\x12R\n\x1a\x61ssigned_object_cable_path\x18\x05 \x01(\x0b\x32\x13.diode.v1.CablePathH\x00R\x17\x61ssignedObjectCablePath\x12k\n!assigned_object_cable_termination\x18\x06 \x01(\x0b\x32\x1a.diode.v1.CableTerminationB\x02\x18\x01H\x00R\x1e\x61ssignedObjectCableTermination\x12K\n\x17\x61ssigned_object_circuit\x18\x07 \x01(\x0b\x32\x11.diode.v1.CircuitH\x00R\x15\x61ssignedObjectCircuit\x12[\n\x1d\x61ssigned_object_circuit_group\x18\x08 \x01(\x0b\x32\x16.diode.v1.CircuitGroupH\x00R\x1a\x61ssignedObjectCircuitGroup\x12z\n(assigned_object_circuit_group_assignment\x18\t \x01(\x0b\x32 .diode.v1.CircuitGroupAssignmentH\x00R$assignedObjectCircuitGroupAssignment\x12m\n#assigned_object_circuit_termination\x18\n \x01(\x0b\x32\x1c.diode.v1.CircuitTerminationH\x00R assignedObjectCircuitTermination\x12X\n\x1c\x61ssigned_object_circuit_type\x18\x0b \x01(\x0b\x32\x15.diode.v1.CircuitTypeH\x00R\x19\x61ssignedObjectCircuitType\x12K\n\x17\x61ssigned_object_cluster\x18\x0c \x01(\x0b\x32\x11.diode.v1.ClusterH\x00R\x15\x61ssignedObjectCluster\x12[\n\x1d\x61ssigned_object_cluster_group\x18\r \x01(\x0b\x32\x16.diode.v1.ClusterGroupH\x00R\x1a\x61ssignedObjectClusterGroup\x12X\n\x1c\x61ssigned_object_cluster_type\x18\x0e \x01(\x0b\x32\x15.diode.v1.ClusterTypeH\x00R\x19\x61ssignedObjectClusterType\x12X\n\x1c\x61ssigned_object_console_port\x18\x0f \x01(\x0b\x32\x15.diode.v1.ConsolePortH\x00R\x19\x61ssignedObjectConsolePort\x12k\n#assigned_object_console_server_port\x18\x10 \x01(\x0b\x32\x1b.diode.v1.ConsoleServerPortH\x00R\x1f\x61ssignedObjectConsoleServerPort\x12K\n\x17\x61ssigned_object_contact\x18\x11 \x01(\x0b\x32\x11.diode.v1.ContactH\x00R\x15\x61ssignedObjectContact\x12j\n\"assigned_object_contact_assignment\x18\x12 \x01(\x0b\x32\x1b.diode.v1.ContactAssignmentH\x00R\x1f\x61ssignedObjectContactAssignment\x12[\n\x1d\x61ssigned_object_contact_group\x18\x13 \x01(\x0b\x32\x16.diode.v1.ContactGroupH\x00R\x1a\x61ssignedObjectContactGroup\x12X\n\x1c\x61ssigned_object_contact_role\x18\x14 \x01(\x0b\x32\x15.diode.v1.ContactRoleH\x00R\x19\x61ssignedObjectContactRole\x12X\n\x1c\x61ssigned_object_custom_field\x18\x15 \x01(\x0b\x32\x15.diode.v1.CustomFieldH\x00R\x19\x61ssignedObjectCustomField\x12u\n\'assigned_object_custom_field_choice_set\x18\x16 \x01(\x0b\x32\x1e.diode.v1.CustomFieldChoiceSetH\x00R\"assignedObjectCustomFieldChoiceSet\x12H\n\x16\x61ssigned_object_device\x18\x17 \x01(\x0b\x32\x10.diode.v1.DeviceH\x00R\x14\x61ssignedObjectDevice\x12R\n\x1a\x61ssigned_object_device_bay\x18\x18 \x01(\x0b\x32\x13.diode.v1.DeviceBayH\x00R\x17\x61ssignedObjectDeviceBay\x12U\n\x1b\x61ssigned_object_device_role\x18\x19 \x01(\x0b\x32\x14.diode.v1.DeviceRoleH\x00R\x18\x61ssignedObjectDeviceRole\x12U\n\x1b\x61ssigned_object_device_type\x18\x1a \x01(\x0b\x32\x14.diode.v1.DeviceTypeH\x00R\x18\x61ssignedObjectDeviceType\x12R\n\x1a\x61ssigned_object_fhrp_group\x18\x1b \x01(\x0b\x32\x13.diode.v1.FHRPGroupH\x00R\x17\x61ssignedObjectFhrpGroup\x12q\n%assigned_object_fhrp_group_assignment\x18\x1c \x01(\x0b\x32\x1d.diode.v1.FHRPGroupAssignmentH\x00R!assignedObjectFhrpGroupAssignment\x12R\n\x1a\x61ssigned_object_front_port\x18\x1d \x01(\x0b\x32\x13.diode.v1.FrontPortH\x00R\x17\x61ssignedObjectFrontPort\x12R\n\x1a\x61ssigned_object_ike_policy\x18\x1e \x01(\x0b\x32\x13.diode.v1.IKEPolicyH\x00R\x17\x61ssignedObjectIkePolicy\x12X\n\x1c\x61ssigned_object_ike_proposal\x18\x1f \x01(\x0b\x32\x15.diode.v1.IKEProposalH\x00R\x19\x61ssignedObjectIkeProposal\x12R\n\x1a\x61ssigned_object_ip_address\x18 \x01(\x0b\x32\x13.diode.v1.IPAddressH\x00R\x17\x61ssignedObjectIpAddress\x12L\n\x18\x61ssigned_object_ip_range\x18! \x01(\x0b\x32\x11.diode.v1.IPRangeH\x00R\x15\x61ssignedObjectIpRange\x12Y\n\x1d\x61ssigned_object_ip_sec_policy\x18\" \x01(\x0b\x32\x15.diode.v1.IPSecPolicyH\x00R\x19\x61ssignedObjectIpSecPolicy\x12\\\n\x1e\x61ssigned_object_ip_sec_profile\x18# \x01(\x0b\x32\x16.diode.v1.IPSecProfileH\x00R\x1a\x61ssignedObjectIpSecProfile\x12_\n\x1f\x61ssigned_object_ip_sec_proposal\x18$ \x01(\x0b\x32\x17.diode.v1.IPSecProposalH\x00R\x1b\x61ssignedObjectIpSecProposal\x12Q\n\x19\x61ssigned_object_interface\x18% \x01(\x0b\x32\x13.diode.v1.InterfaceH\x00R\x17\x61ssignedObjectInterface\x12^\n\x1e\x61ssigned_object_inventory_item\x18& \x01(\x0b\x32\x17.diode.v1.InventoryItemH\x00R\x1b\x61ssignedObjectInventoryItem\x12k\n#assigned_object_inventory_item_role\x18\' \x01(\x0b\x32\x1b.diode.v1.InventoryItemRoleH\x00R\x1f\x61ssignedObjectInventoryItemRole\x12[\n\x1d\x61ssigned_object_journal_entry\x18( \x01(\x0b\x32\x16.diode.v1.JournalEntryH\x00R\x1a\x61ssignedObjectJournalEntry\x12\x45\n\x15\x61ssigned_object_l2vpn\x18) \x01(\x0b\x32\x0f.diode.v1.L2VPNH\x00R\x13\x61ssignedObjectL2vpn\x12g\n!assigned_object_l2vpn_termination\x18* \x01(\x0b\x32\x1a.diode.v1.L2VPNTerminationH\x00R\x1e\x61ssignedObjectL2vpnTermination\x12N\n\x18\x61ssigned_object_location\x18+ \x01(\x0b\x32\x12.diode.v1.LocationH\x00R\x16\x61ssignedObjectLocation\x12U\n\x1b\x61ssigned_object_mac_address\x18, \x01(\x0b\x32\x14.diode.v1.MACAddressH\x00R\x18\x61ssignedObjectMacAddress\x12Z\n\x1c\x61ssigned_object_manufacturer\x18- \x01(\x0b\x32\x16.diode.v1.ManufacturerH\x00R\x1a\x61ssignedObjectManufacturer\x12H\n\x16\x61ssigned_object_module\x18. \x01(\x0b\x32\x10.diode.v1.ModuleH\x00R\x14\x61ssignedObjectModule\x12R\n\x1a\x61ssigned_object_module_bay\x18/ \x01(\x0b\x32\x13.diode.v1.ModuleBayH\x00R\x17\x61ssignedObjectModuleBay\x12U\n\x1b\x61ssigned_object_module_type\x18\x30 \x01(\x0b\x32\x14.diode.v1.ModuleTypeH\x00R\x18\x61ssignedObjectModuleType\x12k\n#assigned_object_module_type_profile\x18\x31 \x01(\x0b\x32\x1b.diode.v1.ModuleTypeProfileH\x00R\x1f\x61ssignedObjectModuleTypeProfile\x12N\n\x18\x61ssigned_object_platform\x18\x32 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x16\x61ssignedObjectPlatform\x12R\n\x1a\x61ssigned_object_power_feed\x18\x33 \x01(\x0b\x32\x13.diode.v1.PowerFeedH\x00R\x17\x61ssignedObjectPowerFeed\x12X\n\x1c\x61ssigned_object_power_outlet\x18\x34 \x01(\x0b\x32\x15.diode.v1.PowerOutletH\x00R\x19\x61ssignedObjectPowerOutlet\x12U\n\x1b\x61ssigned_object_power_panel\x18\x35 \x01(\x0b\x32\x14.diode.v1.PowerPanelH\x00R\x18\x61ssignedObjectPowerPanel\x12R\n\x1a\x61ssigned_object_power_port\x18\x36 \x01(\x0b\x32\x13.diode.v1.PowerPortH\x00R\x17\x61ssignedObjectPowerPort\x12H\n\x16\x61ssigned_object_prefix\x18\x37 \x01(\x0b\x32\x10.diode.v1.PrefixH\x00R\x14\x61ssignedObjectPrefix\x12N\n\x18\x61ssigned_object_provider\x18\x38 \x01(\x0b\x32\x12.diode.v1.ProviderH\x00R\x16\x61ssignedObjectProvider\x12\x64\n assigned_object_provider_account\x18\x39 \x01(\x0b\x32\x19.diode.v1.ProviderAccountH\x00R\x1d\x61ssignedObjectProviderAccount\x12\x64\n assigned_object_provider_network\x18: \x01(\x0b\x32\x19.diode.v1.ProviderNetworkH\x00R\x1d\x61ssignedObjectProviderNetwork\x12?\n\x13\x61ssigned_object_rir\x18; \x01(\x0b\x32\r.diode.v1.RIRH\x00R\x11\x61ssignedObjectRir\x12\x42\n\x14\x61ssigned_object_rack\x18< \x01(\x0b\x32\x0e.diode.v1.RackH\x00R\x12\x61ssignedObjectRack\x12\x64\n assigned_object_rack_reservation\x18= \x01(\x0b\x32\x19.diode.v1.RackReservationH\x00R\x1d\x61ssignedObjectRackReservation\x12O\n\x19\x61ssigned_object_rack_role\x18> \x01(\x0b\x32\x12.diode.v1.RackRoleH\x00R\x16\x61ssignedObjectRackRole\x12O\n\x19\x61ssigned_object_rack_type\x18? \x01(\x0b\x32\x12.diode.v1.RackTypeH\x00R\x16\x61ssignedObjectRackType\x12O\n\x19\x61ssigned_object_rear_port\x18@ \x01(\x0b\x32\x12.diode.v1.RearPortH\x00R\x16\x61ssignedObjectRearPort\x12H\n\x16\x61ssigned_object_region\x18\x41 \x01(\x0b\x32\x10.diode.v1.RegionH\x00R\x14\x61ssignedObjectRegion\x12\x42\n\x14\x61ssigned_object_role\x18\x42 \x01(\x0b\x32\x0e.diode.v1.RoleH\x00R\x12\x61ssignedObjectRole\x12X\n\x1c\x61ssigned_object_route_target\x18\x43 \x01(\x0b\x32\x15.diode.v1.RouteTargetH\x00R\x19\x61ssignedObjectRouteTarget\x12K\n\x17\x61ssigned_object_service\x18\x44 \x01(\x0b\x32\x11.diode.v1.ServiceH\x00R\x15\x61ssignedObjectService\x12\x42\n\x14\x61ssigned_object_site\x18\x45 \x01(\x0b\x32\x0e.diode.v1.SiteH\x00R\x12\x61ssignedObjectSite\x12R\n\x1a\x61ssigned_object_site_group\x18\x46 \x01(\x0b\x32\x13.diode.v1.SiteGroupH\x00R\x17\x61ssignedObjectSiteGroup\x12?\n\x13\x61ssigned_object_tag\x18G \x01(\x0b\x32\r.diode.v1.TagH\x00R\x11\x61ssignedObjectTag\x12H\n\x16\x61ssigned_object_tenant\x18H \x01(\x0b\x32\x10.diode.v1.TenantH\x00R\x14\x61ssignedObjectTenant\x12X\n\x1c\x61ssigned_object_tenant_group\x18I \x01(\x0b\x32\x15.diode.v1.TenantGroupH\x00R\x19\x61ssignedObjectTenantGroup\x12H\n\x16\x61ssigned_object_tunnel\x18J \x01(\x0b\x32\x10.diode.v1.TunnelH\x00R\x14\x61ssignedObjectTunnel\x12X\n\x1c\x61ssigned_object_tunnel_group\x18K \x01(\x0b\x32\x15.diode.v1.TunnelGroupH\x00R\x19\x61ssignedObjectTunnelGroup\x12j\n\"assigned_object_tunnel_termination\x18L \x01(\x0b\x32\x1b.diode.v1.TunnelTerminationH\x00R\x1f\x61ssignedObjectTunnelTermination\x12\x42\n\x14\x61ssigned_object_vlan\x18M \x01(\x0b\x32\x0e.diode.v1.VLANH\x00R\x12\x61ssignedObjectVlan\x12R\n\x1a\x61ssigned_object_vlan_group\x18N \x01(\x0b\x32\x13.diode.v1.VLANGroupH\x00R\x17\x61ssignedObjectVlanGroup\x12w\n\'assigned_object_vlan_translation_policy\x18O \x01(\x0b\x32\x1f.diode.v1.VLANTranslationPolicyH\x00R#assignedObjectVlanTranslationPolicy\x12q\n%assigned_object_vlan_translation_rule\x18P \x01(\x0b\x32\x1d.diode.v1.VLANTranslationRuleH\x00R!assignedObjectVlanTranslationRule\x12X\n\x1c\x61ssigned_object_vm_interface\x18Q \x01(\x0b\x32\x15.diode.v1.VMInterfaceH\x00R\x19\x61ssignedObjectVmInterface\x12?\n\x13\x61ssigned_object_vrf\x18R \x01(\x0b\x32\r.diode.v1.VRFH\x00R\x11\x61ssignedObjectVrf\x12\x61\n\x1f\x61ssigned_object_virtual_chassis\x18S \x01(\x0b\x32\x18.diode.v1.VirtualChassisH\x00R\x1c\x61ssignedObjectVirtualChassis\x12\x61\n\x1f\x61ssigned_object_virtual_circuit\x18T \x01(\x0b\x32\x18.diode.v1.VirtualCircuitH\x00R\x1c\x61ssignedObjectVirtualCircuit\x12\x83\x01\n+assigned_object_virtual_circuit_termination\x18U \x01(\x0b\x32#.diode.v1.VirtualCircuitTerminationH\x00R\'assignedObjectVirtualCircuitTermination\x12n\n$assigned_object_virtual_circuit_type\x18V \x01(\x0b\x32\x1c.diode.v1.VirtualCircuitTypeH\x00R assignedObjectVirtualCircuitType\x12t\n&assigned_object_virtual_device_context\x18W \x01(\x0b\x32\x1e.diode.v1.VirtualDeviceContextH\x00R\"assignedObjectVirtualDeviceContext\x12X\n\x1c\x61ssigned_object_virtual_disk\x18X \x01(\x0b\x32\x15.diode.v1.VirtualDiskH\x00R\x19\x61ssignedObjectVirtualDisk\x12\x61\n\x1f\x61ssigned_object_virtual_machine\x18Y \x01(\x0b\x32\x18.diode.v1.VirtualMachineH\x00R\x1c\x61ssignedObjectVirtualMachine\x12X\n\x1c\x61ssigned_object_wireless_lan\x18Z \x01(\x0b\x32\x15.diode.v1.WirelessLANH\x00R\x19\x61ssignedObjectWirelessLan\x12h\n\"assigned_object_wireless_lan_group\x18[ \x01(\x0b\x32\x1a.diode.v1.WirelessLANGroupH\x00R\x1e\x61ssignedObjectWirelessLanGroup\x12[\n\x1d\x61ssigned_object_wireless_link\x18\\ \x01(\x0b\x32\x16.diode.v1.WirelessLinkH\x00R\x1a\x61ssignedObjectWirelessLink\x12U\n\x1b\x61ssigned_object_custom_link\x18\x61 \x01(\x0b\x32\x14.diode.v1.CustomLinkH\x00R\x18\x61ssignedObjectCustomLink\x12\x45\n\x15\x61ssigned_object_owner\x18\x63 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x00R\x13\x61ssignedObjectOwner\x12U\n\x1b\x61ssigned_object_owner_group\x18\x64 \x01(\x0b\x32\x14.diode.v1.OwnerGroupH\x00R\x18\x61ssignedObjectOwnerGroup\x12X\n\x1c\x61ssigned_object_cable_bundle\x18\x65 \x01(\x0b\x32\x15.diode.v1.CableBundleH\x00R\x19\x61ssignedObjectCableBundle\x12R\n\x1a\x61ssigned_object_rack_group\x18\x66 \x01(\x0b\x32\x13.diode.v1.RackGroupH\x00R\x17\x61ssignedObjectRackGroup\x12[\n\x1d\x61ssigned_object_script_module\x18g \x01(\x0b\x32\x16.diode.v1.ScriptModuleH\x00R\x1a\x61ssignedObjectScriptModule\x12n\n$assigned_object_virtual_machine_type\x18h \x01(\x0b\x32\x1c.diode.v1.VirtualMachineTypeH\x00R assignedObjectVirtualMachineType\x12\x42\n\x14\x61ssigned_object_user\x18i \x01(\x0b\x32\x0e.diode.v1.UserH\x00R\x12\x61ssignedObjectUser\x12>\n\x04kind\x18] \x01(\tB%\xfa\x42\"r R\x06\x64\x61ngerR\x04infoR\x07successR\x07warningH\x01R\x04kind\x88\x01\x01\x12\x1a\n\x08\x63omments\x18^ \x01(\tR\x08\x63omments\x12!\n\x04tags\x18_ \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12M\n\rcustom_fields\x18` \x03(\x0b\x32(.diode.v1.JournalEntry.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x62 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12\x32\n\ncreated_by\x18j \x01(\x0b\x32\x0e.diode.v1.UserH\x02R\tcreatedBy\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x11\n\x0f\x61ssigned_objectB\x07\n\x05_kindB\r\n\x0b_created_by\"\xf9\x03\n\x11ModuleTypeProfile\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x1b\n\x06schema\x18\x03 \x01(\tH\x01R\x06schema\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12R\n\rcustom_fields\x18\x06 \x03(\x0b\x32-.diode.v1.ModuleTypeProfile.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x08 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x03R\x05owner\x88\x01\x01\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\t\n\x07_schemaB\x0b\n\t_commentsB\x08\n\x06_owner\"\xfd\x11\n\nCustomLink\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x1d\n\x07\x65nabled\x18\x02 \x01(\x08H\x00R\x07\x65nabled\x88\x01\x01\x12\x1b\n\tlink_text\x18\x03 \x01(\tR\x08linkText\x12\x19\n\x08link_url\x18\x04 \x01(\tR\x07linkUrl\x12\x1b\n\x06weight\x18\x05 \x01(\x03H\x01R\x06weight\x88\x01\x01\x12\"\n\ngroup_name\x18\x06 \x01(\tH\x02R\tgroupName\x88\x01\x01\x12\x9a\x01\n\x0c\x62utton_class\x18\x07 \x01(\tBr\xfa\x42ormR\x05\x62lackR\x04\x62lueR\x04\x63yanR\x07\x64\x65\x66\x61ultR\nghost-darkR\x04grayR\x05greenR\x06indigoR\x06orangeR\x04pinkR\x06purpleR\x03redR\x04tealR\x05whiteR\x06yellowH\x03R\x0b\x62uttonClass\x88\x01\x01\x12\"\n\nnew_window\x18\x08 \x01(\x08H\x04R\tnewWindow\x88\x01\x01\x12\xca\r\n\x0cobject_types\x18\t \x03(\tB\xa6\r\xfa\x42\xa2\r\x92\x01\x9e\r\"\x9b\rr\x98\rR\x10\x63ircuits.circuitR\x15\x63ircuits.circuitgroupR\x1b\x63ircuits.circuitterminationR\x14\x63ircuits.circuittypeR\x11\x63ircuits.providerR\x18\x63ircuits.provideraccountR\x18\x63ircuits.providernetworkR\x17\x63ircuits.virtualcircuitR\"circuits.virtualcircuitterminationR\x1b\x63ircuits.virtualcircuittypeR\ndcim.cableR\x10\x64\x63im.cablebundleR\x10\x64\x63im.consoleportR\x16\x64\x63im.consoleserverportR\x0b\x64\x63im.deviceR\x0e\x64\x63im.devicebayR\x0f\x64\x63im.deviceroleR\x0f\x64\x63im.devicetypeR\x0e\x64\x63im.frontportR\x0e\x64\x63im.interfaceR\x12\x64\x63im.inventoryitemR\x16\x64\x63im.inventoryitemroleR\rdcim.locationR\x0f\x64\x63im.macaddressR\x11\x64\x63im.manufacturerR\x0b\x64\x63im.moduleR\x0e\x64\x63im.modulebayR\x0f\x64\x63im.moduletypeR\x16\x64\x63im.moduletypeprofileR\rdcim.platformR\x0e\x64\x63im.powerfeedR\x10\x64\x63im.poweroutletR\x0f\x64\x63im.powerpanelR\x0e\x64\x63im.powerportR\tdcim.rackR\x0e\x64\x63im.rackgroupR\x14\x64\x63im.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\x0b\x64\x63im.regionR\tdcim.siteR\x0e\x64\x63im.sitegroupR\x13\x64\x63im.virtualchassisR\x19\x64\x63im.virtualdevicecontextR\x13\x65xtras.journalentryR\x0eipam.aggregateR\x08ipam.asnR\ripam.asnrangeR\x0eipam.fhrpgroupR\x0eipam.ipaddressR\x0cipam.iprangeR\x0bipam.prefixR\x08ipam.rirR\tipam.roleR\x10ipam.routetargetR\x0cipam.serviceR\tipam.vlanR\x0eipam.vlangroupR\x1aipam.vlantranslationpolicyR\x18ipam.vlantranslationruleR\x08ipam.vrfR\x0ftenancy.contactR\x14tenancy.contactgroupR\x13tenancy.contactroleR\x0etenancy.tenantR\x13tenancy.tenantgroupR\x0busers.ownerR\x10users.ownergroupR\x16virtualization.clusterR\x1bvirtualization.clustergroupR\x1avirtualization.clustertypeR\x1avirtualization.virtualdiskR\x1dvirtualization.virtualmachineR!virtualization.virtualmachinetypeR\x1avirtualization.vminterfaceR\rvpn.ikepolicyR\x0fvpn.ikeproposalR\x0fvpn.ipsecpolicyR\x10vpn.ipsecprofileR\x11vpn.ipsecproposalR\tvpn.l2vpnR\x14vpn.l2vpnterminationR\nvpn.tunnelR\x0fvpn.tunnelgroupR\x15vpn.tunnelterminationR\x14wireless.wirelesslanR\x19wireless.wirelesslangroupR\x15wireless.wirelesslinkR\x0bobjectTypes\x12\x39\n\x08metadata\x18\n \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12*\n\x05owner\x18\x0b \x01(\x0b\x32\x0f.diode.v1.OwnerH\x05R\x05owner\x88\x01\x01\x42\n\n\x08_enabledB\t\n\x07_weightB\r\n\x0b_group_nameB\x0f\n\r_button_classB\r\n\x0b_new_windowB\x08\n\x06_owner\"\xdf\x01\n\x05Owner\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12*\n\x05group\x18\x02 \x01(\x0b\x32\x14.diode.v1.OwnerGroupR\x05group\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x12$\n\x05users\x18\x05 \x03(\x0b\x32\x0e.diode.v1.UserR\x05usersB\x0e\n\x0c_description\"\x92\x01\n\nOwnerGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x39\n\x08metadata\x18\x03 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadataB\x0e\n\x0c_description\"\xad\x01\n\x0c\x44\x65viceConfig\x12\x1e\n\x07startup\x18\x01 \x01(\x0c\x42\x04\x88\xb5\x18\x00R\x07startup\x12\x1e\n\x07running\x18\x02 \x01(\x0c\x42\x04\x88\xb5\x18\x00R\x07running\x12\"\n\tcandidate\x18\x03 \x01(\x0c\x42\x04\x88\xb5\x18\x00R\tcandidate\x12\x39\n\x08metadata\x18\x04 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\"\xc5\x03\n\x0b\x43\x61\x62leBundle\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12%\n\x0b\x64\x65scription\x18\x02 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x05owner\x18\x03 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x04 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x05 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12L\n\rcustom_fields\x18\x06 \x03(\x0b\x32\'.diode.v1.CableBundle.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x07 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"\xd5\x03\n\tRackGroup\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12%\n\x0b\x64\x65scription\x18\x03 \x01(\tH\x00R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x05owner\x18\x04 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x01R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x05 \x01(\tH\x02R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\x06 \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12J\n\rcustom_fields\x18\x07 \x03(\x0b\x32%.diode.v1.RackGroup.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x08 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"]\n\x0cScriptModule\x12\x12\n\x04\x66ile\x18\x01 \x01(\tR\x04\x66ile\x12\x39\n\x08metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\"\xbb\x05\n\x12VirtualMachineType\x12\x12\n\x04name\x18\x01 \x01(\tR\x04name\x12\x12\n\x04slug\x18\x02 \x01(\tR\x04slug\x12\x42\n\x10\x64\x65\x66\x61ult_platform\x18\x03 \x01(\x0b\x32\x12.diode.v1.PlatformH\x00R\x0f\x64\x65\x66\x61ultPlatform\x88\x01\x01\x12(\n\rdefault_vcpus\x18\x04 \x01(\x01H\x01R\x0c\x64\x65\x66\x61ultVcpus\x88\x01\x01\x12*\n\x0e\x64\x65\x66\x61ult_memory\x18\x05 \x01(\x03H\x02R\rdefaultMemory\x88\x01\x01\x12%\n\x0b\x64\x65scription\x18\x06 \x01(\tH\x03R\x0b\x64\x65scription\x88\x01\x01\x12*\n\x05owner\x18\x07 \x01(\x0b\x32\x0f.diode.v1.OwnerH\x04R\x05owner\x88\x01\x01\x12\x1f\n\x08\x63omments\x18\x08 \x01(\tH\x05R\x08\x63omments\x88\x01\x01\x12!\n\x04tags\x18\t \x03(\x0b\x32\r.diode.v1.TagR\x04tags\x12S\n\rcustom_fields\x18\n \x03(\x0b\x32..diode.v1.VirtualMachineType.CustomFieldsEntryR\x0c\x63ustomFields\x12\x39\n\x08metadata\x18\x0b \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata\x1a[\n\x11\x43ustomFieldsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x30\n\x05value\x18\x02 \x01(\x0b\x32\x1a.diode.v1.CustomFieldValueR\x05value:\x02\x38\x01\x42\x13\n\x11_default_platformB\x10\n\x0e_default_vcpusB\x11\n\x0f_default_memoryB\x0e\n\x0c_descriptionB\x08\n\x06_ownerB\x0b\n\t_comments\"]\n\x04User\x12\x1a\n\x08username\x18\x01 \x01(\tR\x08username\x12\x39\n\x08metadata\x18\x02 \x01(\x0b\x32\x17.google.protobuf.StructB\x04\x88\xb5\x18\x00R\x08metadata2N\n\x0fIngesterService\x12;\n\x06Ingest\x12\x17.diode.v1.IngestRequest\x1a\x18.diode.v1.IngestResponse:J\n\x10netbox_supported\x12\x1d.google.protobuf.FieldOptions\x18\xd1\x86\x03 \x01(\x08R\x0fnetboxSupportedB5Z3github.com/netboxlabs/diode-sdk-go/diode/v1/diodepbb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -597,7 +597,7 @@ _globals['_CUSTOMFIELD'].fields_by_name['type']._loaded_options = None _globals['_CUSTOMFIELD'].fields_by_name['type']._serialized_options = b'\372BrrpR\007booleanR\004dateR\010datetimeR\007decimalR\007integerR\004jsonR\010longtextR\013multiobjectR\013multiselectR\006objectR\006selectR\004textR\003url' _globals['_CUSTOMFIELD'].fields_by_name['related_object_type']._loaded_options = None - _globals['_CUSTOMFIELD'].fields_by_name['related_object_type']._serialized_options = b'\372B\343\016r\340\016R\020circuits.circuitR\025circuits.circuitgroupR\037circuits.circuitgroupassignmentR\033circuits.circuitterminationR\024circuits.circuittypeR\021circuits.providerR\030circuits.provideraccountR\030circuits.providernetworkR\027circuits.virtualcircuitR\"circuits.virtualcircuitterminationR\033circuits.virtualcircuittypeR\020core.managedfileR\ndcim.cableR\020dcim.cablebundleR\016dcim.cablepathR\020dcim.consoleportR\026dcim.consoleserverportR\013dcim.deviceR\016dcim.devicebayR\017dcim.deviceroleR\017dcim.devicetypeR\016dcim.frontportR\016dcim.interfaceR\022dcim.inventoryitemR\026dcim.inventoryitemroleR\rdcim.locationR\017dcim.macaddressR\021dcim.manufacturerR\013dcim.moduleR\016dcim.modulebayR\017dcim.moduletypeR\026dcim.moduletypeprofileR\rdcim.platformR\016dcim.powerfeedR\020dcim.poweroutletR\017dcim.powerpanelR\016dcim.powerportR\tdcim.rackR\016dcim.rackgroupR\024dcim.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\013dcim.regionR\tdcim.siteR\016dcim.sitegroupR\023dcim.virtualchassisR\031dcim.virtualdevicecontextR\022extras.customfieldR\033extras.customfieldchoicesetR\021extras.customlinkR\023extras.journalentryR\nextras.tagR\016ipam.aggregateR\010ipam.asnR\ripam.asnrangeR\016ipam.fhrpgroupR\030ipam.fhrpgroupassignmentR\016ipam.ipaddressR\014ipam.iprangeR\013ipam.prefixR\010ipam.rirR\tipam.roleR\020ipam.routetargetR\014ipam.serviceR\tipam.vlanR\016ipam.vlangroupR\032ipam.vlantranslationpolicyR\030ipam.vlantranslationruleR\010ipam.vrfR\017tenancy.contactR\031tenancy.contactassignmentR\024tenancy.contactgroupR\023tenancy.contactroleR\016tenancy.tenantR\023tenancy.tenantgroupR\013users.ownerR\020users.ownergroupR\026virtualization.clusterR\033virtualization.clustergroupR\032virtualization.clustertypeR\032virtualization.virtualdiskR\035virtualization.virtualmachineR!virtualization.virtualmachinetypeR\032virtualization.vminterfaceR\rvpn.ikepolicyR\017vpn.ikeproposalR\017vpn.ipsecpolicyR\020vpn.ipsecprofileR\021vpn.ipsecproposalR\tvpn.l2vpnR\024vpn.l2vpnterminationR\nvpn.tunnelR\017vpn.tunnelgroupR\025vpn.tunnelterminationR\024wireless.wirelesslanR\031wireless.wirelesslangroupR\025wireless.wirelesslink' + _globals['_CUSTOMFIELD'].fields_by_name['related_object_type']._serialized_options = b'\372B\357\016r\354\016R\020circuits.circuitR\025circuits.circuitgroupR\037circuits.circuitgroupassignmentR\033circuits.circuitterminationR\024circuits.circuittypeR\021circuits.providerR\030circuits.provideraccountR\030circuits.providernetworkR\027circuits.virtualcircuitR\"circuits.virtualcircuitterminationR\033circuits.virtualcircuittypeR\020core.managedfileR\ndcim.cableR\020dcim.cablebundleR\016dcim.cablepathR\020dcim.consoleportR\026dcim.consoleserverportR\013dcim.deviceR\016dcim.devicebayR\017dcim.deviceroleR\017dcim.devicetypeR\016dcim.frontportR\016dcim.interfaceR\022dcim.inventoryitemR\026dcim.inventoryitemroleR\rdcim.locationR\017dcim.macaddressR\021dcim.manufacturerR\013dcim.moduleR\016dcim.modulebayR\017dcim.moduletypeR\026dcim.moduletypeprofileR\rdcim.platformR\016dcim.powerfeedR\020dcim.poweroutletR\017dcim.powerpanelR\016dcim.powerportR\tdcim.rackR\016dcim.rackgroupR\024dcim.rackreservationR\rdcim.rackroleR\rdcim.racktypeR\rdcim.rearportR\013dcim.regionR\tdcim.siteR\016dcim.sitegroupR\023dcim.virtualchassisR\031dcim.virtualdevicecontextR\022extras.customfieldR\033extras.customfieldchoicesetR\021extras.customlinkR\023extras.journalentryR\nextras.tagR\016ipam.aggregateR\010ipam.asnR\ripam.asnrangeR\016ipam.fhrpgroupR\030ipam.fhrpgroupassignmentR\016ipam.ipaddressR\014ipam.iprangeR\013ipam.prefixR\010ipam.rirR\tipam.roleR\020ipam.routetargetR\014ipam.serviceR\tipam.vlanR\016ipam.vlangroupR\032ipam.vlantranslationpolicyR\030ipam.vlantranslationruleR\010ipam.vrfR\017tenancy.contactR\031tenancy.contactassignmentR\024tenancy.contactgroupR\023tenancy.contactroleR\016tenancy.tenantR\023tenancy.tenantgroupR\013users.ownerR\020users.ownergroupR\nusers.userR\026virtualization.clusterR\033virtualization.clustergroupR\032virtualization.clustertypeR\032virtualization.virtualdiskR\035virtualization.virtualmachineR!virtualization.virtualmachinetypeR\032virtualization.vminterfaceR\rvpn.ikepolicyR\017vpn.ikeproposalR\017vpn.ipsecpolicyR\020vpn.ipsecprofileR\021vpn.ipsecproposalR\tvpn.l2vpnR\024vpn.l2vpnterminationR\nvpn.tunnelR\017vpn.tunnelgroupR\025vpn.tunnelterminationR\024wireless.wirelesslanR\031wireless.wirelesslangroupR\025wireless.wirelesslink' _globals['_CUSTOMFIELD'].fields_by_name['filter_logic']._loaded_options = None _globals['_CUSTOMFIELD'].fields_by_name['filter_logic']._serialized_options = b'\372B\032r\030R\010disabledR\005exactR\005loose' _globals['_CUSTOMFIELD'].fields_by_name['ui_visible']._loaded_options = None @@ -656,390 +656,394 @@ _globals['_VIRTUALMACHINETYPE_CUSTOMFIELDSENTRY']._serialized_options = b'8\001' _globals['_VIRTUALMACHINETYPE'].fields_by_name['metadata']._loaded_options = None _globals['_VIRTUALMACHINETYPE'].fields_by_name['metadata']._serialized_options = b'\210\265\030\000' + _globals['_USER'].fields_by_name['metadata']._loaded_options = None + _globals['_USER'].fields_by_name['metadata']._serialized_options = b'\210\265\030\000' _globals['_ENTITY']._serialized_start=160 - _globals['_ENTITY']._serialized_end=6203 - _globals['_INGESTREQUEST']._serialized_start=6206 - _globals['_INGESTREQUEST']._serialized_end=6615 - _globals['_INGESTRESPONSE']._serialized_start=6617 - _globals['_INGESTRESPONSE']._serialized_end=6657 - _globals['_ASN']._serialized_start=6660 - _globals['_ASN']._serialized_end=7287 - _globals['_ASN_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_ASN_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_ASNRANGE']._serialized_start=7290 - _globals['_ASNRANGE']._serialized_end=7888 - _globals['_ASNRANGE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_ASNRANGE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_AGGREGATE']._serialized_start=7891 - _globals['_AGGREGATE']._serialized_end=8514 - _globals['_AGGREGATE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_AGGREGATE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CABLE']._serialized_start=8517 - _globals['_CABLE']._serialized_end=10190 - _globals['_CABLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CABLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CABLEPATH']._serialized_start=10193 - _globals['_CABLEPATH']._serialized_end=10410 - _globals['_CABLETERMINATION']._serialized_start=10413 - _globals['_CABLETERMINATION']._serialized_end=11339 - _globals['_CIRCUIT']._serialized_start=11342 - _globals['_CIRCUIT']._serialized_end=12581 - _globals['_CIRCUIT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CIRCUIT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CIRCUITGROUP']._serialized_start=12584 - _globals['_CIRCUITGROUP']._serialized_end=13117 - _globals['_CIRCUITGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CIRCUITGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CIRCUITGROUPASSIGNMENT']._serialized_start=13120 - _globals['_CIRCUITGROUPASSIGNMENT']._serialized_end=13529 - _globals['_CIRCUITTERMINATION']._serialized_start=13532 - _globals['_CIRCUITTERMINATION']._serialized_end=14627 - _globals['_CIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CIRCUITTYPE']._serialized_start=14630 - _globals['_CIRCUITTYPE']._serialized_end=15140 - _globals['_CIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CLUSTER']._serialized_start=15143 - _globals['_CLUSTER']._serialized_end=16088 - _globals['_CLUSTER_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CLUSTER_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CLUSTERGROUP']._serialized_start=16091 - _globals['_CLUSTERGROUP']._serialized_end=16566 - _globals['_CLUSTERGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CLUSTERGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CLUSTERTYPE']._serialized_start=16569 - _globals['_CLUSTERTYPE']._serialized_end=17042 - _globals['_CLUSTERTYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CLUSTERTYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CONSOLEPORT']._serialized_start=17045 - _globals['_CONSOLEPORT']._serialized_end=17907 - _globals['_CONSOLEPORT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CONSOLEPORT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CONSOLESERVERPORT']._serialized_start=17910 - _globals['_CONSOLESERVERPORT']._serialized_end=18784 - _globals['_CONSOLESERVERPORT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CONSOLESERVERPORT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CONTACT']._serialized_start=18787 - _globals['_CONTACT']._serialized_end=19533 - _globals['_CONTACT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CONTACT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CONTACTASSIGNMENT']._serialized_start=19536 - _globals['_CONTACTASSIGNMENT']._serialized_end=27204 - _globals['_CONTACTASSIGNMENT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CONTACTASSIGNMENT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CONTACTGROUP']._serialized_start=27207 - _globals['_CONTACTGROUP']._serialized_end=27746 - _globals['_CONTACTGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CONTACTGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CONTACTROLE']._serialized_start=27749 - _globals['_CONTACTROLE']._serialized_end=28222 - _globals['_CONTACTROLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CONTACTROLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CUSTOMFIELDOBJECTREFERENCE']._serialized_start=28225 - _globals['_CUSTOMFIELDOBJECTREFERENCE']._serialized_end=34149 - _globals['_CUSTOMFIELDVALUE']._serialized_start=34152 - _globals['_CUSTOMFIELDVALUE']._serialized_end=34690 - _globals['_DEVICE']._serialized_start=34693 - _globals['_DEVICE']._serialized_end=36653 - _globals['_DEVICE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_DEVICE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_DEVICEBAY']._serialized_start=36656 - _globals['_DEVICEBAY']._serialized_end=37268 - _globals['_DEVICEBAY_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_DEVICEBAY_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_DEVICEROLE']._serialized_start=37271 - _globals['_DEVICEROLE']._serialized_end=37883 - _globals['_DEVICEROLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_DEVICEROLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_DEVICETYPE']._serialized_start=37886 - _globals['_DEVICETYPE']._serialized_end=39147 - _globals['_DEVICETYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_DEVICETYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_FHRPGROUP']._serialized_start=39150 - _globals['_FHRPGROUP']._serialized_end=39841 - _globals['_FHRPGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_FHRPGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_FHRPGROUPASSIGNMENT']._serialized_start=39844 - _globals['_FHRPGROUPASSIGNMENT']._serialized_end=47775 - _globals['_FRONTPORT']._serialized_start=47778 - _globals['_FRONTPORT']._serialized_end=49053 - _globals['_FRONTPORT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_FRONTPORT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_GENERICOBJECT']._serialized_start=49056 - _globals['_GENERICOBJECT']._serialized_end=56254 - _globals['_IKEPOLICY']._serialized_start=56257 - _globals['_IKEPOLICY']._serialized_end=56915 - _globals['_IKEPOLICY_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IKEPOLICY_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_IKEPROPOSAL']._serialized_start=56918 - _globals['_IKEPROPOSAL']._serialized_end=57941 - _globals['_IKEPROPOSAL_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IKEPROPOSAL_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_IPADDRESS']._serialized_start=57944 - _globals['_IPADDRESS']._serialized_end=59086 - _globals['_IPADDRESS_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IPADDRESS_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_IPRANGE']._serialized_start=59089 - _globals['_IPRANGE']._serialized_end=59938 - _globals['_IPRANGE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IPRANGE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_IPSECPOLICY']._serialized_start=59941 - _globals['_IPSECPOLICY']._serialized_end=60552 - _globals['_IPSECPOLICY_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IPSECPOLICY_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_IPSECPROFILE']._serialized_start=60555 - _globals['_IPSECPROFILE']._serialized_end=61156 - _globals['_IPSECPROFILE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IPSECPROFILE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_IPSECPROPOSAL']._serialized_start=61159 - _globals['_IPSECPROPOSAL']._serialized_end=62108 - _globals['_IPSECPROPOSAL_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_IPSECPROPOSAL_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_INTERFACE']._serialized_start=62111 - _globals['_INTERFACE']._serialized_end=70549 - _globals['_INTERFACE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_INTERFACE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_INVENTORYITEM']._serialized_start=70552 - _globals['_INVENTORYITEM']._serialized_end=72097 - _globals['_INVENTORYITEM_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_INVENTORYITEM_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_INVENTORYITEMROLE']._serialized_start=72100 - _globals['_INVENTORYITEMROLE']._serialized_end=72622 - _globals['_INVENTORYITEMROLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_INVENTORYITEMROLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_L2VPN']._serialized_start=72625 - _globals['_L2VPN']._serialized_end=73558 - _globals['_L2VPN_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_L2VPN_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_L2VPNTERMINATION']._serialized_start=73561 - _globals['_L2VPNTERMINATION']._serialized_end=82764 - _globals['_L2VPNTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_L2VPNTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_LOCATION']._serialized_start=82767 - _globals['_LOCATION']._serialized_end=83533 - _globals['_LOCATION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_LOCATION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_MACADDRESS']._serialized_start=83536 - _globals['_MACADDRESS']._serialized_end=84192 - _globals['_MACADDRESS_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_MACADDRESS_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_MANUFACTURER']._serialized_start=84195 - _globals['_MANUFACTURER']._serialized_end=84670 - _globals['_MANUFACTURER_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_MANUFACTURER_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_MODULE']._serialized_start=84673 - _globals['_MODULE']._serialized_end=85589 - _globals['_MODULE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_MODULE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_MODULEBAY']._serialized_start=85592 - _globals['_MODULEBAY']._serialized_end=86308 - _globals['_MODULEBAY_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_MODULEBAY_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_MODULETYPE']._serialized_start=86311 - _globals['_MODULETYPE']._serialized_end=87251 - _globals['_MODULETYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_MODULETYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_PLATFORM']._serialized_start=87254 - _globals['_PLATFORM']._serialized_end=87863 - _globals['_PLATFORM_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_PLATFORM_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_POWERFEED']._serialized_start=87866 - _globals['_POWERFEED']._serialized_end=88964 - _globals['_POWERFEED_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_POWERFEED_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_POWEROUTLET']._serialized_start=88967 - _globals['_POWEROUTLET']._serialized_end=91237 - _globals['_POWEROUTLET_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_POWEROUTLET_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_POWERPANEL']._serialized_start=91240 - _globals['_POWERPANEL']._serialized_end=91793 - _globals['_POWERPANEL_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_POWERPANEL_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_POWERPORT']._serialized_start=91796 - _globals['_POWERPORT']._serialized_end=93994 - _globals['_POWERPORT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_POWERPORT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_PREFIX']._serialized_start=93997 - _globals['_PREFIX']._serialized_end=95077 - _globals['_PREFIX_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_PREFIX_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_PROVIDER']._serialized_start=95080 - _globals['_PROVIDER']._serialized_end=95637 - _globals['_PROVIDER_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_PROVIDER_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_PROVIDERACCOUNT']._serialized_start=95640 - _globals['_PROVIDERACCOUNT']._serialized_end=96189 - _globals['_PROVIDERACCOUNT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_PROVIDERACCOUNT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_PROVIDERNETWORK']._serialized_start=96192 - _globals['_PROVIDERNETWORK']._serialized_end=96752 - _globals['_PROVIDERNETWORK_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_PROVIDERNETWORK_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_RIR']._serialized_start=96755 - _globals['_RIR']._serialized_end=97263 - _globals['_RIR_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_RIR_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_RACK']._serialized_start=97266 - _globals['_RACK']._serialized_end=99209 - _globals['_RACK_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_RACK_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_RACKRESERVATION']._serialized_start=99212 - _globals['_RACKRESERVATION']._serialized_end=99819 - _globals['_RACKRESERVATION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_RACKRESERVATION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_RACKROLE']._serialized_start=99822 - _globals['_RACKROLE']._serialized_end=100326 - _globals['_RACKROLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_RACKROLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_RACKTYPE']._serialized_start=100329 - _globals['_RACKTYPE']._serialized_end=101703 - _globals['_RACKTYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_RACKTYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_REARPORT']._serialized_start=101706 - _globals['_REARPORT']._serialized_end=102848 - _globals['_REARPORT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_REARPORT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_REGION']._serialized_start=102851 - _globals['_REGION']._serialized_end=103372 - _globals['_REGION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_REGION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_ROLE']._serialized_start=103375 - _globals['_ROLE']._serialized_end=103874 - _globals['_ROLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_ROLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_ROUTETARGET']._serialized_start=103877 - _globals['_ROUTETARGET']._serialized_end=104388 - _globals['_ROUTETARGET_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_ROUTETARGET_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_SERVICE']._serialized_start=104391 - _globals['_SERVICE']._serialized_end=105402 - _globals['_SERVICE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_SERVICE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_SITE']._serialized_start=105405 - _globals['_SITE']._serialized_end=106499 - _globals['_SITE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_SITE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_SITEGROUP']._serialized_start=106502 - _globals['_SITEGROUP']._serialized_end=107032 - _globals['_SITEGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_SITEGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_TAG']._serialized_start=107035 - _globals['_TAG']._serialized_end=109041 - _globals['_TENANT']._serialized_start=109044 - _globals['_TENANT']._serialized_end=109567 - _globals['_TENANT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_TENANT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_TENANTGROUP']._serialized_start=109570 - _globals['_TENANTGROUP']._serialized_end=110106 - _globals['_TENANTGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_TENANTGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_TUNNEL']._serialized_start=110109 - _globals['_TUNNEL']._serialized_end=110980 - _globals['_TUNNEL_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_TUNNEL_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_TUNNELGROUP']._serialized_start=110983 - _globals['_TUNNELGROUP']._serialized_end=111456 - _globals['_TUNNELGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_TUNNELGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_TUNNELTERMINATION']._serialized_start=111459 - _globals['_TUNNELTERMINATION']._serialized_end=120086 - _globals['_TUNNELTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_TUNNELTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VLAN']._serialized_start=120089 - _globals['_VLAN']._serialized_end=120975 - _globals['_VLAN_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VLAN_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VLANGROUP']._serialized_start=120978 - _globals['_VLANGROUP']._serialized_end=122021 - _globals['_VLANGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VLANGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VLANTRANSLATIONPOLICY']._serialized_start=122024 - _globals['_VLANTRANSLATIONPOLICY']._serialized_end=122281 - _globals['_VLANTRANSLATIONRULE']._serialized_start=122284 - _globals['_VLANTRANSLATIONRULE']._serialized_end=122536 - _globals['_VMINTERFACE']._serialized_start=122539 - _globals['_VMINTERFACE']._serialized_end=123751 - _globals['_VMINTERFACE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VMINTERFACE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VRF']._serialized_start=123754 - _globals['_VRF']._serialized_end=124464 - _globals['_VRF_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VRF_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALCHASSIS']._serialized_start=124467 - _globals['_VIRTUALCHASSIS']._serialized_end=125024 - _globals['_VIRTUALCHASSIS_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALCHASSIS_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALCIRCUIT']._serialized_start=125027 - _globals['_VIRTUALCIRCUIT']._serialized_end=125877 - _globals['_VIRTUALCIRCUIT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALCIRCUIT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALCIRCUITTERMINATION']._serialized_start=125880 - _globals['_VIRTUALCIRCUITTERMINATION']._serialized_end=126418 - _globals['_VIRTUALCIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALCIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALCIRCUITTYPE']._serialized_start=126421 - _globals['_VIRTUALCIRCUITTYPE']._serialized_end=126945 - _globals['_VIRTUALCIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALCIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALDEVICECONTEXT']._serialized_start=126948 - _globals['_VIRTUALDEVICECONTEXT']._serialized_end=127778 - _globals['_VIRTUALDEVICECONTEXT_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALDEVICECONTEXT_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALDISK']._serialized_start=127781 - _globals['_VIRTUALDISK']._serialized_end=128275 - _globals['_VIRTUALDISK_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALDISK_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_VIRTUALMACHINE']._serialized_start=128278 - _globals['_VIRTUALMACHINE']._serialized_end=129698 - _globals['_VIRTUALMACHINE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALMACHINE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_WIRELESSLAN']._serialized_start=129701 - _globals['_WIRELESSLAN']._serialized_end=130872 - _globals['_WIRELESSLAN_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_WIRELESSLAN_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_WIRELESSLANGROUP']._serialized_start=130875 - _globals['_WIRELESSLANGROUP']._serialized_end=131426 - _globals['_WIRELESSLANGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_WIRELESSLANGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_WIRELESSLINK']._serialized_start=131429 - _globals['_WIRELESSLINK']._serialized_end=132495 - _globals['_WIRELESSLINK_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_WIRELESSLINK_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CUSTOMFIELD']._serialized_start=132498 - _globals['_CUSTOMFIELD']._serialized_end=137710 - _globals['_CUSTOMFIELDCHOICESET']._serialized_start=137713 - _globals['_CUSTOMFIELDCHOICESET']._serialized_end=138192 - _globals['_JOURNALENTRY']._serialized_start=138195 - _globals['_JOURNALENTRY']._serialized_end=147452 - _globals['_JOURNALENTRY_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_JOURNALENTRY_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_MODULETYPEPROFILE']._serialized_start=147455 - _globals['_MODULETYPEPROFILE']._serialized_end=147960 - _globals['_MODULETYPEPROFILE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_MODULETYPEPROFILE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_CUSTOMLINK']._serialized_start=147963 - _globals['_CUSTOMLINK']._serialized_end=150264 - _globals['_OWNER']._serialized_start=150267 - _globals['_OWNER']._serialized_end=150452 - _globals['_OWNERGROUP']._serialized_start=150455 - _globals['_OWNERGROUP']._serialized_end=150601 - _globals['_DEVICECONFIG']._serialized_start=150604 - _globals['_DEVICECONFIG']._serialized_end=150777 - _globals['_CABLEBUNDLE']._serialized_start=150780 - _globals['_CABLEBUNDLE']._serialized_end=151233 - _globals['_CABLEBUNDLE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_CABLEBUNDLE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_RACKGROUP']._serialized_start=151236 - _globals['_RACKGROUP']._serialized_end=151705 - _globals['_RACKGROUP_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_RACKGROUP_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_SCRIPTMODULE']._serialized_start=151707 - _globals['_SCRIPTMODULE']._serialized_end=151800 - _globals['_VIRTUALMACHINETYPE']._serialized_start=151803 - _globals['_VIRTUALMACHINETYPE']._serialized_end=152502 - _globals['_VIRTUALMACHINETYPE_CUSTOMFIELDSENTRY']._serialized_start=7129 - _globals['_VIRTUALMACHINETYPE_CUSTOMFIELDSENTRY']._serialized_end=7220 - _globals['_INGESTERSERVICE']._serialized_start=152504 - _globals['_INGESTERSERVICE']._serialized_end=152582 + _globals['_ENTITY']._serialized_end=6241 + _globals['_INGESTREQUEST']._serialized_start=6244 + _globals['_INGESTREQUEST']._serialized_end=6653 + _globals['_INGESTRESPONSE']._serialized_start=6655 + _globals['_INGESTRESPONSE']._serialized_end=6695 + _globals['_ASN']._serialized_start=6698 + _globals['_ASN']._serialized_end=7325 + _globals['_ASN_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_ASN_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_ASNRANGE']._serialized_start=7328 + _globals['_ASNRANGE']._serialized_end=7926 + _globals['_ASNRANGE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_ASNRANGE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_AGGREGATE']._serialized_start=7929 + _globals['_AGGREGATE']._serialized_end=8552 + _globals['_AGGREGATE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_AGGREGATE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CABLE']._serialized_start=8555 + _globals['_CABLE']._serialized_end=10228 + _globals['_CABLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CABLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CABLEPATH']._serialized_start=10231 + _globals['_CABLEPATH']._serialized_end=10448 + _globals['_CABLETERMINATION']._serialized_start=10451 + _globals['_CABLETERMINATION']._serialized_end=11377 + _globals['_CIRCUIT']._serialized_start=11380 + _globals['_CIRCUIT']._serialized_end=12619 + _globals['_CIRCUIT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CIRCUIT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CIRCUITGROUP']._serialized_start=12622 + _globals['_CIRCUITGROUP']._serialized_end=13155 + _globals['_CIRCUITGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CIRCUITGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CIRCUITGROUPASSIGNMENT']._serialized_start=13158 + _globals['_CIRCUITGROUPASSIGNMENT']._serialized_end=13567 + _globals['_CIRCUITTERMINATION']._serialized_start=13570 + _globals['_CIRCUITTERMINATION']._serialized_end=14665 + _globals['_CIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CIRCUITTYPE']._serialized_start=14668 + _globals['_CIRCUITTYPE']._serialized_end=15178 + _globals['_CIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CLUSTER']._serialized_start=15181 + _globals['_CLUSTER']._serialized_end=16126 + _globals['_CLUSTER_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CLUSTER_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CLUSTERGROUP']._serialized_start=16129 + _globals['_CLUSTERGROUP']._serialized_end=16604 + _globals['_CLUSTERGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CLUSTERGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CLUSTERTYPE']._serialized_start=16607 + _globals['_CLUSTERTYPE']._serialized_end=17080 + _globals['_CLUSTERTYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CLUSTERTYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CONSOLEPORT']._serialized_start=17083 + _globals['_CONSOLEPORT']._serialized_end=17945 + _globals['_CONSOLEPORT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CONSOLEPORT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CONSOLESERVERPORT']._serialized_start=17948 + _globals['_CONSOLESERVERPORT']._serialized_end=18822 + _globals['_CONSOLESERVERPORT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CONSOLESERVERPORT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CONTACT']._serialized_start=18825 + _globals['_CONTACT']._serialized_end=19571 + _globals['_CONTACT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CONTACT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CONTACTASSIGNMENT']._serialized_start=19574 + _globals['_CONTACTASSIGNMENT']._serialized_end=27293 + _globals['_CONTACTASSIGNMENT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CONTACTASSIGNMENT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CONTACTGROUP']._serialized_start=27296 + _globals['_CONTACTGROUP']._serialized_end=27835 + _globals['_CONTACTGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CONTACTGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CONTACTROLE']._serialized_start=27838 + _globals['_CONTACTROLE']._serialized_end=28311 + _globals['_CONTACTROLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CONTACTROLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CUSTOMFIELDOBJECTREFERENCE']._serialized_start=28314 + _globals['_CUSTOMFIELDOBJECTREFERENCE']._serialized_end=34276 + _globals['_CUSTOMFIELDVALUE']._serialized_start=34279 + _globals['_CUSTOMFIELDVALUE']._serialized_end=34817 + _globals['_DEVICE']._serialized_start=34820 + _globals['_DEVICE']._serialized_end=36780 + _globals['_DEVICE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_DEVICE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_DEVICEBAY']._serialized_start=36783 + _globals['_DEVICEBAY']._serialized_end=37395 + _globals['_DEVICEBAY_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_DEVICEBAY_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_DEVICEROLE']._serialized_start=37398 + _globals['_DEVICEROLE']._serialized_end=38010 + _globals['_DEVICEROLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_DEVICEROLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_DEVICETYPE']._serialized_start=38013 + _globals['_DEVICETYPE']._serialized_end=39274 + _globals['_DEVICETYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_DEVICETYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_FHRPGROUP']._serialized_start=39277 + _globals['_FHRPGROUP']._serialized_end=39968 + _globals['_FHRPGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_FHRPGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_FHRPGROUPASSIGNMENT']._serialized_start=39971 + _globals['_FHRPGROUPASSIGNMENT']._serialized_end=47959 + _globals['_FRONTPORT']._serialized_start=47962 + _globals['_FRONTPORT']._serialized_end=49237 + _globals['_FRONTPORT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_FRONTPORT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_GENERICOBJECT']._serialized_start=49240 + _globals['_GENERICOBJECT']._serialized_end=56489 + _globals['_IKEPOLICY']._serialized_start=56492 + _globals['_IKEPOLICY']._serialized_end=57150 + _globals['_IKEPOLICY_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IKEPOLICY_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_IKEPROPOSAL']._serialized_start=57153 + _globals['_IKEPROPOSAL']._serialized_end=58176 + _globals['_IKEPROPOSAL_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IKEPROPOSAL_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_IPADDRESS']._serialized_start=58179 + _globals['_IPADDRESS']._serialized_end=59321 + _globals['_IPADDRESS_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IPADDRESS_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_IPRANGE']._serialized_start=59324 + _globals['_IPRANGE']._serialized_end=60173 + _globals['_IPRANGE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IPRANGE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_IPSECPOLICY']._serialized_start=60176 + _globals['_IPSECPOLICY']._serialized_end=60787 + _globals['_IPSECPOLICY_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IPSECPOLICY_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_IPSECPROFILE']._serialized_start=60790 + _globals['_IPSECPROFILE']._serialized_end=61391 + _globals['_IPSECPROFILE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IPSECPROFILE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_IPSECPROPOSAL']._serialized_start=61394 + _globals['_IPSECPROPOSAL']._serialized_end=62343 + _globals['_IPSECPROPOSAL_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_IPSECPROPOSAL_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_INTERFACE']._serialized_start=62346 + _globals['_INTERFACE']._serialized_end=70784 + _globals['_INTERFACE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_INTERFACE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_INVENTORYITEM']._serialized_start=70787 + _globals['_INVENTORYITEM']._serialized_end=72332 + _globals['_INVENTORYITEM_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_INVENTORYITEM_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_INVENTORYITEMROLE']._serialized_start=72335 + _globals['_INVENTORYITEMROLE']._serialized_end=72857 + _globals['_INVENTORYITEMROLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_INVENTORYITEMROLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_L2VPN']._serialized_start=72860 + _globals['_L2VPN']._serialized_end=73793 + _globals['_L2VPN_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_L2VPN_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_L2VPNTERMINATION']._serialized_start=73796 + _globals['_L2VPNTERMINATION']._serialized_end=83067 + _globals['_L2VPNTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_L2VPNTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_LOCATION']._serialized_start=83070 + _globals['_LOCATION']._serialized_end=83836 + _globals['_LOCATION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_LOCATION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_MACADDRESS']._serialized_start=83839 + _globals['_MACADDRESS']._serialized_end=84495 + _globals['_MACADDRESS_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_MACADDRESS_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_MANUFACTURER']._serialized_start=84498 + _globals['_MANUFACTURER']._serialized_end=84973 + _globals['_MANUFACTURER_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_MANUFACTURER_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_MODULE']._serialized_start=84976 + _globals['_MODULE']._serialized_end=85892 + _globals['_MODULE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_MODULE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_MODULEBAY']._serialized_start=85895 + _globals['_MODULEBAY']._serialized_end=86611 + _globals['_MODULEBAY_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_MODULEBAY_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_MODULETYPE']._serialized_start=86614 + _globals['_MODULETYPE']._serialized_end=87554 + _globals['_MODULETYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_MODULETYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_PLATFORM']._serialized_start=87557 + _globals['_PLATFORM']._serialized_end=88166 + _globals['_PLATFORM_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_PLATFORM_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_POWERFEED']._serialized_start=88169 + _globals['_POWERFEED']._serialized_end=89267 + _globals['_POWERFEED_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_POWERFEED_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_POWEROUTLET']._serialized_start=89270 + _globals['_POWEROUTLET']._serialized_end=91540 + _globals['_POWEROUTLET_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_POWEROUTLET_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_POWERPANEL']._serialized_start=91543 + _globals['_POWERPANEL']._serialized_end=92096 + _globals['_POWERPANEL_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_POWERPANEL_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_POWERPORT']._serialized_start=92099 + _globals['_POWERPORT']._serialized_end=94297 + _globals['_POWERPORT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_POWERPORT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_PREFIX']._serialized_start=94300 + _globals['_PREFIX']._serialized_end=95380 + _globals['_PREFIX_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_PREFIX_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_PROVIDER']._serialized_start=95383 + _globals['_PROVIDER']._serialized_end=95940 + _globals['_PROVIDER_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_PROVIDER_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_PROVIDERACCOUNT']._serialized_start=95943 + _globals['_PROVIDERACCOUNT']._serialized_end=96492 + _globals['_PROVIDERACCOUNT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_PROVIDERACCOUNT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_PROVIDERNETWORK']._serialized_start=96495 + _globals['_PROVIDERNETWORK']._serialized_end=97055 + _globals['_PROVIDERNETWORK_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_PROVIDERNETWORK_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_RIR']._serialized_start=97058 + _globals['_RIR']._serialized_end=97566 + _globals['_RIR_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_RIR_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_RACK']._serialized_start=97569 + _globals['_RACK']._serialized_end=99512 + _globals['_RACK_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_RACK_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_RACKRESERVATION']._serialized_start=99515 + _globals['_RACKRESERVATION']._serialized_end=100158 + _globals['_RACKRESERVATION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_RACKRESERVATION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_RACKROLE']._serialized_start=100161 + _globals['_RACKROLE']._serialized_end=100665 + _globals['_RACKROLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_RACKROLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_RACKTYPE']._serialized_start=100668 + _globals['_RACKTYPE']._serialized_end=102042 + _globals['_RACKTYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_RACKTYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_REARPORT']._serialized_start=102045 + _globals['_REARPORT']._serialized_end=103187 + _globals['_REARPORT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_REARPORT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_REGION']._serialized_start=103190 + _globals['_REGION']._serialized_end=103711 + _globals['_REGION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_REGION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_ROLE']._serialized_start=103714 + _globals['_ROLE']._serialized_end=104213 + _globals['_ROLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_ROLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_ROUTETARGET']._serialized_start=104216 + _globals['_ROUTETARGET']._serialized_end=104727 + _globals['_ROUTETARGET_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_ROUTETARGET_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_SERVICE']._serialized_start=104730 + _globals['_SERVICE']._serialized_end=105741 + _globals['_SERVICE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_SERVICE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_SITE']._serialized_start=105744 + _globals['_SITE']._serialized_end=106838 + _globals['_SITE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_SITE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_SITEGROUP']._serialized_start=106841 + _globals['_SITEGROUP']._serialized_end=107371 + _globals['_SITEGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_SITEGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_TAG']._serialized_start=107374 + _globals['_TAG']._serialized_end=109380 + _globals['_TENANT']._serialized_start=109383 + _globals['_TENANT']._serialized_end=109906 + _globals['_TENANT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_TENANT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_TENANTGROUP']._serialized_start=109909 + _globals['_TENANTGROUP']._serialized_end=110445 + _globals['_TENANTGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_TENANTGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_TUNNEL']._serialized_start=110448 + _globals['_TUNNEL']._serialized_end=111319 + _globals['_TUNNEL_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_TUNNEL_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_TUNNELGROUP']._serialized_start=111322 + _globals['_TUNNELGROUP']._serialized_end=111795 + _globals['_TUNNELGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_TUNNELGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_TUNNELTERMINATION']._serialized_start=111798 + _globals['_TUNNELTERMINATION']._serialized_end=120486 + _globals['_TUNNELTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_TUNNELTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VLAN']._serialized_start=120489 + _globals['_VLAN']._serialized_end=121375 + _globals['_VLAN_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VLAN_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VLANGROUP']._serialized_start=121378 + _globals['_VLANGROUP']._serialized_end=122421 + _globals['_VLANGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VLANGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VLANTRANSLATIONPOLICY']._serialized_start=122424 + _globals['_VLANTRANSLATIONPOLICY']._serialized_end=122681 + _globals['_VLANTRANSLATIONRULE']._serialized_start=122684 + _globals['_VLANTRANSLATIONRULE']._serialized_end=122936 + _globals['_VMINTERFACE']._serialized_start=122939 + _globals['_VMINTERFACE']._serialized_end=124151 + _globals['_VMINTERFACE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VMINTERFACE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VRF']._serialized_start=124154 + _globals['_VRF']._serialized_end=124864 + _globals['_VRF_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VRF_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALCHASSIS']._serialized_start=124867 + _globals['_VIRTUALCHASSIS']._serialized_end=125424 + _globals['_VIRTUALCHASSIS_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALCHASSIS_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALCIRCUIT']._serialized_start=125427 + _globals['_VIRTUALCIRCUIT']._serialized_end=126277 + _globals['_VIRTUALCIRCUIT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALCIRCUIT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALCIRCUITTERMINATION']._serialized_start=126280 + _globals['_VIRTUALCIRCUITTERMINATION']._serialized_end=126818 + _globals['_VIRTUALCIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALCIRCUITTERMINATION_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALCIRCUITTYPE']._serialized_start=126821 + _globals['_VIRTUALCIRCUITTYPE']._serialized_end=127345 + _globals['_VIRTUALCIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALCIRCUITTYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALDEVICECONTEXT']._serialized_start=127348 + _globals['_VIRTUALDEVICECONTEXT']._serialized_end=128178 + _globals['_VIRTUALDEVICECONTEXT_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALDEVICECONTEXT_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALDISK']._serialized_start=128181 + _globals['_VIRTUALDISK']._serialized_end=128675 + _globals['_VIRTUALDISK_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALDISK_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_VIRTUALMACHINE']._serialized_start=128678 + _globals['_VIRTUALMACHINE']._serialized_end=130098 + _globals['_VIRTUALMACHINE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALMACHINE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_WIRELESSLAN']._serialized_start=130101 + _globals['_WIRELESSLAN']._serialized_end=131272 + _globals['_WIRELESSLAN_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_WIRELESSLAN_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_WIRELESSLANGROUP']._serialized_start=131275 + _globals['_WIRELESSLANGROUP']._serialized_end=131826 + _globals['_WIRELESSLANGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_WIRELESSLANGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_WIRELESSLINK']._serialized_start=131829 + _globals['_WIRELESSLINK']._serialized_end=132895 + _globals['_WIRELESSLINK_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_WIRELESSLINK_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CUSTOMFIELD']._serialized_start=132898 + _globals['_CUSTOMFIELD']._serialized_end=138122 + _globals['_CUSTOMFIELDCHOICESET']._serialized_start=138125 + _globals['_CUSTOMFIELDCHOICESET']._serialized_end=138604 + _globals['_JOURNALENTRY']._serialized_start=138607 + _globals['_JOURNALENTRY']._serialized_end=147999 + _globals['_JOURNALENTRY_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_JOURNALENTRY_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_MODULETYPEPROFILE']._serialized_start=148002 + _globals['_MODULETYPEPROFILE']._serialized_end=148507 + _globals['_MODULETYPEPROFILE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_MODULETYPEPROFILE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_CUSTOMLINK']._serialized_start=148510 + _globals['_CUSTOMLINK']._serialized_end=150811 + _globals['_OWNER']._serialized_start=150814 + _globals['_OWNER']._serialized_end=151037 + _globals['_OWNERGROUP']._serialized_start=151040 + _globals['_OWNERGROUP']._serialized_end=151186 + _globals['_DEVICECONFIG']._serialized_start=151189 + _globals['_DEVICECONFIG']._serialized_end=151362 + _globals['_CABLEBUNDLE']._serialized_start=151365 + _globals['_CABLEBUNDLE']._serialized_end=151818 + _globals['_CABLEBUNDLE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_CABLEBUNDLE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_RACKGROUP']._serialized_start=151821 + _globals['_RACKGROUP']._serialized_end=152290 + _globals['_RACKGROUP_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_RACKGROUP_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_SCRIPTMODULE']._serialized_start=152292 + _globals['_SCRIPTMODULE']._serialized_end=152385 + _globals['_VIRTUALMACHINETYPE']._serialized_start=152388 + _globals['_VIRTUALMACHINETYPE']._serialized_end=153087 + _globals['_VIRTUALMACHINETYPE_CUSTOMFIELDSENTRY']._serialized_start=7167 + _globals['_VIRTUALMACHINETYPE_CUSTOMFIELDSENTRY']._serialized_end=7258 + _globals['_USER']._serialized_start=153089 + _globals['_USER']._serialized_end=153182 + _globals['_INGESTERSERVICE']._serialized_start=153184 + _globals['_INGESTERSERVICE']._serialized_end=153262 # @@protoc_insertion_point(module_scope) diff --git a/netboxlabs/diode/sdk/diode/v1/ingester_pb2.pyi b/netboxlabs/diode/sdk/diode/v1/ingester_pb2.pyi index 349e502..dee3be1 100644 --- a/netboxlabs/diode/sdk/diode/v1/ingester_pb2.pyi +++ b/netboxlabs/diode/sdk/diode/v1/ingester_pb2.pyi @@ -1,6 +1,6 @@ -from google.protobuf import timestamp_pb2 as _timestamp_pb2 from google.protobuf import descriptor_pb2 as _descriptor_pb2 from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 from netboxlabs.diode.sdk.validate import validate_pb2 as _validate_pb2 from google.protobuf.internal import containers as _containers from google.protobuf import descriptor as _descriptor @@ -12,7 +12,7 @@ NETBOX_SUPPORTED_FIELD_NUMBER: _ClassVar[int] netbox_supported: _descriptor.FieldDescriptor class Entity(_message.Message): - __slots__ = ("timestamp", "asn", "asn_range", "aggregate", "cable", "cable_path", "cable_termination", "circuit", "circuit_group", "circuit_group_assignment", "circuit_termination", "circuit_type", "cluster", "cluster_group", "cluster_type", "console_port", "console_server_port", "contact", "contact_assignment", "contact_group", "contact_role", "device", "device_bay", "device_role", "device_type", "fhrp_group", "fhrp_group_assignment", "front_port", "ike_policy", "ike_proposal", "ip_address", "ip_range", "ip_sec_policy", "ip_sec_profile", "ip_sec_proposal", "interface", "inventory_item", "inventory_item_role", "l2vpn", "l2vpn_termination", "location", "mac_address", "manufacturer", "module", "module_bay", "module_type", "platform", "power_feed", "power_outlet", "power_panel", "power_port", "prefix", "provider", "provider_account", "provider_network", "rir", "rack", "rack_reservation", "rack_role", "rack_type", "rear_port", "region", "role", "route_target", "service", "site", "site_group", "tag", "tenant", "tenant_group", "tunnel", "tunnel_group", "tunnel_termination", "vlan", "vlan_group", "vlan_translation_policy", "vlan_translation_rule", "vm_interface", "vrf", "virtual_chassis", "virtual_circuit", "virtual_circuit_termination", "virtual_circuit_type", "virtual_device_context", "virtual_disk", "virtual_machine", "wireless_lan", "wireless_lan_group", "wireless_link", "custom_field", "custom_field_choice_set", "journal_entry", "module_type_profile", "custom_link", "owner", "owner_group", "device_config", "cable_bundle", "rack_group", "script_module", "virtual_machine_type") + __slots__ = ("timestamp", "asn", "asn_range", "aggregate", "cable", "cable_path", "cable_termination", "circuit", "circuit_group", "circuit_group_assignment", "circuit_termination", "circuit_type", "cluster", "cluster_group", "cluster_type", "console_port", "console_server_port", "contact", "contact_assignment", "contact_group", "contact_role", "device", "device_bay", "device_role", "device_type", "fhrp_group", "fhrp_group_assignment", "front_port", "ike_policy", "ike_proposal", "ip_address", "ip_range", "ip_sec_policy", "ip_sec_profile", "ip_sec_proposal", "interface", "inventory_item", "inventory_item_role", "l2vpn", "l2vpn_termination", "location", "mac_address", "manufacturer", "module", "module_bay", "module_type", "platform", "power_feed", "power_outlet", "power_panel", "power_port", "prefix", "provider", "provider_account", "provider_network", "rir", "rack", "rack_reservation", "rack_role", "rack_type", "rear_port", "region", "role", "route_target", "service", "site", "site_group", "tag", "tenant", "tenant_group", "tunnel", "tunnel_group", "tunnel_termination", "vlan", "vlan_group", "vlan_translation_policy", "vlan_translation_rule", "vm_interface", "vrf", "virtual_chassis", "virtual_circuit", "virtual_circuit_termination", "virtual_circuit_type", "virtual_device_context", "virtual_disk", "virtual_machine", "wireless_lan", "wireless_lan_group", "wireless_link", "custom_field", "custom_field_choice_set", "journal_entry", "module_type_profile", "custom_link", "owner", "owner_group", "device_config", "cable_bundle", "rack_group", "script_module", "virtual_machine_type", "user") TIMESTAMP_FIELD_NUMBER: _ClassVar[int] ASN_FIELD_NUMBER: _ClassVar[int] ASN_RANGE_FIELD_NUMBER: _ClassVar[int] @@ -114,6 +114,7 @@ class Entity(_message.Message): RACK_GROUP_FIELD_NUMBER: _ClassVar[int] SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] timestamp: _timestamp_pb2.Timestamp asn: ASN asn_range: ASNRange @@ -215,7 +216,8 @@ class Entity(_message.Message): rack_group: RackGroup script_module: ScriptModule virtual_machine_type: VirtualMachineType - def __init__(self, timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., asn: _Optional[_Union[ASN, _Mapping]] = ..., asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., cable: _Optional[_Union[Cable, _Mapping]] = ..., cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., circuit: _Optional[_Union[Circuit, _Mapping]] = ..., circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., cluster: _Optional[_Union[Cluster, _Mapping]] = ..., cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., device: _Optional[_Union[Device, _Mapping]] = ..., device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., interface: _Optional[_Union[Interface, _Mapping]] = ..., inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., location: _Optional[_Union[Location, _Mapping]] = ..., mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., module: _Optional[_Union[Module, _Mapping]] = ..., module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., platform: _Optional[_Union[Platform, _Mapping]] = ..., power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., prefix: _Optional[_Union[Prefix, _Mapping]] = ..., provider: _Optional[_Union[Provider, _Mapping]] = ..., provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., rir: _Optional[_Union[RIR, _Mapping]] = ..., rack: _Optional[_Union[Rack, _Mapping]] = ..., rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., rack_type: _Optional[_Union[RackType, _Mapping]] = ..., rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., region: _Optional[_Union[Region, _Mapping]] = ..., role: _Optional[_Union[Role, _Mapping]] = ..., route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., service: _Optional[_Union[Service, _Mapping]] = ..., site: _Optional[_Union[Site, _Mapping]] = ..., site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., tag: _Optional[_Union[Tag, _Mapping]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., vlan: _Optional[_Union[VLAN, _Mapping]] = ..., vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., vrf: _Optional[_Union[VRF, _Mapping]] = ..., virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., device_config: _Optional[_Union[DeviceConfig, _Mapping]] = ..., cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ...) -> None: ... + user: User + def __init__(self, timestamp: _Optional[_Union[_timestamp_pb2.Timestamp, _Mapping]] = ..., asn: _Optional[_Union[ASN, _Mapping]] = ..., asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., cable: _Optional[_Union[Cable, _Mapping]] = ..., cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., circuit: _Optional[_Union[Circuit, _Mapping]] = ..., circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., cluster: _Optional[_Union[Cluster, _Mapping]] = ..., cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., device: _Optional[_Union[Device, _Mapping]] = ..., device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., interface: _Optional[_Union[Interface, _Mapping]] = ..., inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., location: _Optional[_Union[Location, _Mapping]] = ..., mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., module: _Optional[_Union[Module, _Mapping]] = ..., module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., platform: _Optional[_Union[Platform, _Mapping]] = ..., power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., prefix: _Optional[_Union[Prefix, _Mapping]] = ..., provider: _Optional[_Union[Provider, _Mapping]] = ..., provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., rir: _Optional[_Union[RIR, _Mapping]] = ..., rack: _Optional[_Union[Rack, _Mapping]] = ..., rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., rack_type: _Optional[_Union[RackType, _Mapping]] = ..., rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., region: _Optional[_Union[Region, _Mapping]] = ..., role: _Optional[_Union[Role, _Mapping]] = ..., route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., service: _Optional[_Union[Service, _Mapping]] = ..., site: _Optional[_Union[Site, _Mapping]] = ..., site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., tag: _Optional[_Union[Tag, _Mapping]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., vlan: _Optional[_Union[VLAN, _Mapping]] = ..., vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., vrf: _Optional[_Union[VRF, _Mapping]] = ..., virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., device_config: _Optional[_Union[DeviceConfig, _Mapping]] = ..., cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., user: _Optional[_Union[User, _Mapping]] = ...) -> None: ... class IngestRequest(_message.Message): __slots__ = ("stream", "entities", "id", "producer_app_name", "producer_app_version", "sdk_name", "sdk_version", "metadata") @@ -796,7 +798,7 @@ class Contact(_message.Message): def __init__(self, group: _Optional[_Union[ContactGroup, _Mapping]] = ..., name: _Optional[str] = ..., title: _Optional[str] = ..., phone: _Optional[str] = ..., email: _Optional[str] = ..., address: _Optional[str] = ..., link: _Optional[str] = ..., description: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., groups: _Optional[_Iterable[_Union[ContactGroup, _Mapping]]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ...) -> None: ... class ContactAssignment(_message.Message): - __slots__ = ("object_asn", "object_asn_range", "object_aggregate", "object_cable", "object_cable_path", "object_cable_termination", "object_circuit", "object_circuit_group", "object_circuit_group_assignment", "object_circuit_termination", "object_circuit_type", "object_cluster", "object_cluster_group", "object_cluster_type", "object_console_port", "object_console_server_port", "object_contact", "object_contact_assignment", "object_contact_group", "object_contact_role", "object_device", "object_device_bay", "object_device_role", "object_device_type", "object_fhrp_group", "object_fhrp_group_assignment", "object_front_port", "object_ike_policy", "object_ike_proposal", "object_ip_address", "object_ip_range", "object_ip_sec_policy", "object_ip_sec_profile", "object_ip_sec_proposal", "object_interface", "object_inventory_item", "object_inventory_item_role", "object_l2vpn", "object_l2vpn_termination", "object_location", "object_mac_address", "object_manufacturer", "object_module", "object_module_bay", "object_module_type", "object_platform", "object_power_feed", "object_power_outlet", "object_power_panel", "object_power_port", "object_prefix", "object_provider", "object_provider_account", "object_provider_network", "object_rir", "object_rack", "object_rack_reservation", "object_rack_role", "object_rack_type", "object_rear_port", "object_region", "object_role", "object_route_target", "object_service", "object_site", "object_site_group", "object_tag", "object_tenant", "object_tenant_group", "object_tunnel", "object_tunnel_group", "object_tunnel_termination", "object_vlan", "object_vlan_group", "object_vlan_translation_policy", "object_vlan_translation_rule", "object_vm_interface", "object_vrf", "object_virtual_chassis", "object_virtual_circuit", "object_virtual_circuit_termination", "object_virtual_circuit_type", "object_virtual_device_context", "object_virtual_disk", "object_virtual_machine", "object_wireless_lan", "object_wireless_lan_group", "object_wireless_link", "object_custom_field", "object_custom_field_choice_set", "object_journal_entry", "object_module_type_profile", "object_custom_link", "object_owner", "object_owner_group", "object_cable_bundle", "object_rack_group", "object_script_module", "object_virtual_machine_type", "contact", "role", "priority", "tags", "custom_fields", "metadata") + __slots__ = ("object_asn", "object_asn_range", "object_aggregate", "object_cable", "object_cable_path", "object_cable_termination", "object_circuit", "object_circuit_group", "object_circuit_group_assignment", "object_circuit_termination", "object_circuit_type", "object_cluster", "object_cluster_group", "object_cluster_type", "object_console_port", "object_console_server_port", "object_contact", "object_contact_assignment", "object_contact_group", "object_contact_role", "object_device", "object_device_bay", "object_device_role", "object_device_type", "object_fhrp_group", "object_fhrp_group_assignment", "object_front_port", "object_ike_policy", "object_ike_proposal", "object_ip_address", "object_ip_range", "object_ip_sec_policy", "object_ip_sec_profile", "object_ip_sec_proposal", "object_interface", "object_inventory_item", "object_inventory_item_role", "object_l2vpn", "object_l2vpn_termination", "object_location", "object_mac_address", "object_manufacturer", "object_module", "object_module_bay", "object_module_type", "object_platform", "object_power_feed", "object_power_outlet", "object_power_panel", "object_power_port", "object_prefix", "object_provider", "object_provider_account", "object_provider_network", "object_rir", "object_rack", "object_rack_reservation", "object_rack_role", "object_rack_type", "object_rear_port", "object_region", "object_role", "object_route_target", "object_service", "object_site", "object_site_group", "object_tag", "object_tenant", "object_tenant_group", "object_tunnel", "object_tunnel_group", "object_tunnel_termination", "object_vlan", "object_vlan_group", "object_vlan_translation_policy", "object_vlan_translation_rule", "object_vm_interface", "object_vrf", "object_virtual_chassis", "object_virtual_circuit", "object_virtual_circuit_termination", "object_virtual_circuit_type", "object_virtual_device_context", "object_virtual_disk", "object_virtual_machine", "object_wireless_lan", "object_wireless_lan_group", "object_wireless_link", "object_custom_field", "object_custom_field_choice_set", "object_journal_entry", "object_module_type_profile", "object_custom_link", "object_owner", "object_owner_group", "object_cable_bundle", "object_rack_group", "object_script_module", "object_virtual_machine_type", "object_user", "contact", "role", "priority", "tags", "custom_fields", "metadata") class CustomFieldsEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -903,6 +905,7 @@ class ContactAssignment(_message.Message): OBJECT_RACK_GROUP_FIELD_NUMBER: _ClassVar[int] OBJECT_SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] OBJECT_VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_USER_FIELD_NUMBER: _ClassVar[int] CONTACT_FIELD_NUMBER: _ClassVar[int] ROLE_FIELD_NUMBER: _ClassVar[int] PRIORITY_FIELD_NUMBER: _ClassVar[int] @@ -1008,13 +1011,14 @@ class ContactAssignment(_message.Message): object_rack_group: RackGroup object_script_module: ScriptModule object_virtual_machine_type: VirtualMachineType + object_user: User contact: Contact role: ContactRole priority: str tags: _containers.RepeatedCompositeFieldContainer[Tag] custom_fields: _containers.MessageMap[str, CustomFieldValue] metadata: _struct_pb2.Struct - def __init__(self, object_asn: _Optional[_Union[ASN, _Mapping]] = ..., object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., object_cable: _Optional[_Union[Cable, _Mapping]] = ..., object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., object_contact: _Optional[_Union[Contact, _Mapping]] = ..., object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., object_device: _Optional[_Union[Device, _Mapping]] = ..., object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., object_interface: _Optional[_Union[Interface, _Mapping]] = ..., object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., object_location: _Optional[_Union[Location, _Mapping]] = ..., object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., object_module: _Optional[_Union[Module, _Mapping]] = ..., object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., object_platform: _Optional[_Union[Platform, _Mapping]] = ..., object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., object_provider: _Optional[_Union[Provider, _Mapping]] = ..., object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., object_rir: _Optional[_Union[RIR, _Mapping]] = ..., object_rack: _Optional[_Union[Rack, _Mapping]] = ..., object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., object_region: _Optional[_Union[Region, _Mapping]] = ..., object_role: _Optional[_Union[Role, _Mapping]] = ..., object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., object_service: _Optional[_Union[Service, _Mapping]] = ..., object_site: _Optional[_Union[Site, _Mapping]] = ..., object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., object_tag: _Optional[_Union[Tag, _Mapping]] = ..., object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., object_owner: _Optional[_Union[Owner, _Mapping]] = ..., object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., role: _Optional[_Union[ContactRole, _Mapping]] = ..., priority: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + def __init__(self, object_asn: _Optional[_Union[ASN, _Mapping]] = ..., object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., object_cable: _Optional[_Union[Cable, _Mapping]] = ..., object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., object_contact: _Optional[_Union[Contact, _Mapping]] = ..., object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., object_device: _Optional[_Union[Device, _Mapping]] = ..., object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., object_interface: _Optional[_Union[Interface, _Mapping]] = ..., object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., object_location: _Optional[_Union[Location, _Mapping]] = ..., object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., object_module: _Optional[_Union[Module, _Mapping]] = ..., object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., object_platform: _Optional[_Union[Platform, _Mapping]] = ..., object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., object_provider: _Optional[_Union[Provider, _Mapping]] = ..., object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., object_rir: _Optional[_Union[RIR, _Mapping]] = ..., object_rack: _Optional[_Union[Rack, _Mapping]] = ..., object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., object_region: _Optional[_Union[Region, _Mapping]] = ..., object_role: _Optional[_Union[Role, _Mapping]] = ..., object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., object_service: _Optional[_Union[Service, _Mapping]] = ..., object_site: _Optional[_Union[Site, _Mapping]] = ..., object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., object_tag: _Optional[_Union[Tag, _Mapping]] = ..., object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., object_owner: _Optional[_Union[Owner, _Mapping]] = ..., object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., object_user: _Optional[_Union[User, _Mapping]] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., role: _Optional[_Union[ContactRole, _Mapping]] = ..., priority: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... class ContactGroup(_message.Message): __slots__ = ("name", "slug", "parent", "description", "tags", "custom_fields", "comments", "metadata", "owner") @@ -1073,7 +1077,7 @@ class ContactRole(_message.Message): def __init__(self, name: _Optional[str] = ..., slug: _Optional[str] = ..., description: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., comments: _Optional[str] = ...) -> None: ... class CustomFieldObjectReference(_message.Message): - __slots__ = ("asn", "asn_range", "aggregate", "cable", "cable_path", "cable_termination", "circuit", "circuit_group", "circuit_group_assignment", "circuit_termination", "circuit_type", "cluster", "cluster_group", "cluster_type", "console_port", "console_server_port", "contact", "contact_assignment", "contact_group", "contact_role", "device", "device_bay", "device_role", "device_type", "fhrp_group", "fhrp_group_assignment", "front_port", "ike_policy", "ike_proposal", "ip_address", "ip_range", "ip_sec_policy", "ip_sec_profile", "ip_sec_proposal", "interface", "inventory_item", "inventory_item_role", "l2vpn", "l2vpn_termination", "location", "mac_address", "manufacturer", "module", "module_bay", "module_type", "platform", "power_feed", "power_outlet", "power_panel", "power_port", "prefix", "provider", "provider_account", "provider_network", "rir", "rack", "rack_reservation", "rack_role", "rack_type", "rear_port", "region", "role", "route_target", "service", "site", "site_group", "tag", "tenant", "tenant_group", "tunnel", "tunnel_group", "tunnel_termination", "vlan", "vlan_group", "vlan_translation_policy", "vlan_translation_rule", "vm_interface", "vrf", "virtual_chassis", "virtual_circuit", "virtual_circuit_termination", "virtual_circuit_type", "virtual_device_context", "virtual_disk", "virtual_machine", "wireless_lan", "wireless_lan_group", "wireless_link", "custom_field", "custom_field_choice_set", "journal_entry", "module_type_profile", "custom_link", "owner", "owner_group", "cable_bundle", "rack_group", "script_module", "virtual_machine_type") + __slots__ = ("asn", "asn_range", "aggregate", "cable", "cable_path", "cable_termination", "circuit", "circuit_group", "circuit_group_assignment", "circuit_termination", "circuit_type", "cluster", "cluster_group", "cluster_type", "console_port", "console_server_port", "contact", "contact_assignment", "contact_group", "contact_role", "device", "device_bay", "device_role", "device_type", "fhrp_group", "fhrp_group_assignment", "front_port", "ike_policy", "ike_proposal", "ip_address", "ip_range", "ip_sec_policy", "ip_sec_profile", "ip_sec_proposal", "interface", "inventory_item", "inventory_item_role", "l2vpn", "l2vpn_termination", "location", "mac_address", "manufacturer", "module", "module_bay", "module_type", "platform", "power_feed", "power_outlet", "power_panel", "power_port", "prefix", "provider", "provider_account", "provider_network", "rir", "rack", "rack_reservation", "rack_role", "rack_type", "rear_port", "region", "role", "route_target", "service", "site", "site_group", "tag", "tenant", "tenant_group", "tunnel", "tunnel_group", "tunnel_termination", "vlan", "vlan_group", "vlan_translation_policy", "vlan_translation_rule", "vm_interface", "vrf", "virtual_chassis", "virtual_circuit", "virtual_circuit_termination", "virtual_circuit_type", "virtual_device_context", "virtual_disk", "virtual_machine", "wireless_lan", "wireless_lan_group", "wireless_link", "custom_field", "custom_field_choice_set", "journal_entry", "module_type_profile", "custom_link", "owner", "owner_group", "cable_bundle", "rack_group", "script_module", "virtual_machine_type", "user") ASN_FIELD_NUMBER: _ClassVar[int] ASN_RANGE_FIELD_NUMBER: _ClassVar[int] AGGREGATE_FIELD_NUMBER: _ClassVar[int] @@ -1173,6 +1177,7 @@ class CustomFieldObjectReference(_message.Message): RACK_GROUP_FIELD_NUMBER: _ClassVar[int] SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] asn: ASN asn_range: ASNRange aggregate: Aggregate @@ -1272,7 +1277,8 @@ class CustomFieldObjectReference(_message.Message): rack_group: RackGroup script_module: ScriptModule virtual_machine_type: VirtualMachineType - def __init__(self, asn: _Optional[_Union[ASN, _Mapping]] = ..., asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., cable: _Optional[_Union[Cable, _Mapping]] = ..., cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., circuit: _Optional[_Union[Circuit, _Mapping]] = ..., circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., cluster: _Optional[_Union[Cluster, _Mapping]] = ..., cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., device: _Optional[_Union[Device, _Mapping]] = ..., device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., interface: _Optional[_Union[Interface, _Mapping]] = ..., inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., location: _Optional[_Union[Location, _Mapping]] = ..., mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., module: _Optional[_Union[Module, _Mapping]] = ..., module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., platform: _Optional[_Union[Platform, _Mapping]] = ..., power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., prefix: _Optional[_Union[Prefix, _Mapping]] = ..., provider: _Optional[_Union[Provider, _Mapping]] = ..., provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., rir: _Optional[_Union[RIR, _Mapping]] = ..., rack: _Optional[_Union[Rack, _Mapping]] = ..., rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., rack_type: _Optional[_Union[RackType, _Mapping]] = ..., rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., region: _Optional[_Union[Region, _Mapping]] = ..., role: _Optional[_Union[Role, _Mapping]] = ..., route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., service: _Optional[_Union[Service, _Mapping]] = ..., site: _Optional[_Union[Site, _Mapping]] = ..., site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., tag: _Optional[_Union[Tag, _Mapping]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., vlan: _Optional[_Union[VLAN, _Mapping]] = ..., vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., vrf: _Optional[_Union[VRF, _Mapping]] = ..., virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ...) -> None: ... + user: User + def __init__(self, asn: _Optional[_Union[ASN, _Mapping]] = ..., asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., cable: _Optional[_Union[Cable, _Mapping]] = ..., cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., circuit: _Optional[_Union[Circuit, _Mapping]] = ..., circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., cluster: _Optional[_Union[Cluster, _Mapping]] = ..., cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., contact: _Optional[_Union[Contact, _Mapping]] = ..., contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., device: _Optional[_Union[Device, _Mapping]] = ..., device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., interface: _Optional[_Union[Interface, _Mapping]] = ..., inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., location: _Optional[_Union[Location, _Mapping]] = ..., mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., module: _Optional[_Union[Module, _Mapping]] = ..., module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., platform: _Optional[_Union[Platform, _Mapping]] = ..., power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., prefix: _Optional[_Union[Prefix, _Mapping]] = ..., provider: _Optional[_Union[Provider, _Mapping]] = ..., provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., rir: _Optional[_Union[RIR, _Mapping]] = ..., rack: _Optional[_Union[Rack, _Mapping]] = ..., rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., rack_type: _Optional[_Union[RackType, _Mapping]] = ..., rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., region: _Optional[_Union[Region, _Mapping]] = ..., role: _Optional[_Union[Role, _Mapping]] = ..., route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., service: _Optional[_Union[Service, _Mapping]] = ..., site: _Optional[_Union[Site, _Mapping]] = ..., site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., tag: _Optional[_Union[Tag, _Mapping]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., vlan: _Optional[_Union[VLAN, _Mapping]] = ..., vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., vrf: _Optional[_Union[VRF, _Mapping]] = ..., virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., user: _Optional[_Union[User, _Mapping]] = ...) -> None: ... class CustomFieldValue(_message.Message): __slots__ = ("multiple_selection", "multiple_objects", "text", "long_text", "integer", "decimal", "boolean", "date", "datetime", "url", "json", "selection", "object") @@ -1520,7 +1526,7 @@ class FHRPGroup(_message.Message): def __init__(self, name: _Optional[str] = ..., protocol: _Optional[str] = ..., group_id: _Optional[int] = ..., auth_type: _Optional[str] = ..., auth_key: _Optional[str] = ..., description: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ...) -> None: ... class FHRPGroupAssignment(_message.Message): - __slots__ = ("group", "interface_asn", "interface_asn_range", "interface_aggregate", "interface_cable", "interface_cable_path", "interface_cable_termination", "interface_circuit", "interface_circuit_group", "interface_circuit_group_assignment", "interface_circuit_termination", "interface_circuit_type", "interface_cluster", "interface_cluster_group", "interface_cluster_type", "interface_console_port", "interface_console_server_port", "interface_contact", "interface_contact_assignment", "interface_contact_group", "interface_contact_role", "interface_device", "interface_device_bay", "interface_device_role", "interface_device_type", "interface_fhrp_group", "interface_fhrp_group_assignment", "interface_front_port", "interface_ike_policy", "interface_ike_proposal", "interface_ip_address", "interface_ip_range", "interface_ip_sec_policy", "interface_ip_sec_profile", "interface_ip_sec_proposal", "interface_interface", "interface_inventory_item", "interface_inventory_item_role", "interface_l2vpn", "interface_l2vpn_termination", "interface_location", "interface_mac_address", "interface_manufacturer", "interface_module", "interface_module_bay", "interface_module_type", "interface_platform", "interface_power_feed", "interface_power_outlet", "interface_power_panel", "interface_power_port", "interface_prefix", "interface_provider", "interface_provider_account", "interface_provider_network", "interface_rir", "interface_rack", "interface_rack_reservation", "interface_rack_role", "interface_rack_type", "interface_rear_port", "interface_region", "interface_role", "interface_route_target", "interface_service", "interface_site", "interface_site_group", "interface_tag", "interface_tenant", "interface_tenant_group", "interface_tunnel", "interface_tunnel_group", "interface_tunnel_termination", "interface_vlan", "interface_vlan_group", "interface_vlan_translation_policy", "interface_vlan_translation_rule", "interface_vm_interface", "interface_vrf", "interface_virtual_chassis", "interface_virtual_circuit", "interface_virtual_circuit_termination", "interface_virtual_circuit_type", "interface_virtual_device_context", "interface_virtual_disk", "interface_virtual_machine", "interface_wireless_lan", "interface_wireless_lan_group", "interface_wireless_link", "interface_custom_field", "interface_custom_field_choice_set", "interface_journal_entry", "interface_module_type_profile", "interface_custom_link", "interface_owner", "interface_owner_group", "interface_cable_bundle", "interface_rack_group", "interface_script_module", "interface_virtual_machine_type", "priority", "metadata") + __slots__ = ("group", "interface_asn", "interface_asn_range", "interface_aggregate", "interface_cable", "interface_cable_path", "interface_cable_termination", "interface_circuit", "interface_circuit_group", "interface_circuit_group_assignment", "interface_circuit_termination", "interface_circuit_type", "interface_cluster", "interface_cluster_group", "interface_cluster_type", "interface_console_port", "interface_console_server_port", "interface_contact", "interface_contact_assignment", "interface_contact_group", "interface_contact_role", "interface_device", "interface_device_bay", "interface_device_role", "interface_device_type", "interface_fhrp_group", "interface_fhrp_group_assignment", "interface_front_port", "interface_ike_policy", "interface_ike_proposal", "interface_ip_address", "interface_ip_range", "interface_ip_sec_policy", "interface_ip_sec_profile", "interface_ip_sec_proposal", "interface_interface", "interface_inventory_item", "interface_inventory_item_role", "interface_l2vpn", "interface_l2vpn_termination", "interface_location", "interface_mac_address", "interface_manufacturer", "interface_module", "interface_module_bay", "interface_module_type", "interface_platform", "interface_power_feed", "interface_power_outlet", "interface_power_panel", "interface_power_port", "interface_prefix", "interface_provider", "interface_provider_account", "interface_provider_network", "interface_rir", "interface_rack", "interface_rack_reservation", "interface_rack_role", "interface_rack_type", "interface_rear_port", "interface_region", "interface_role", "interface_route_target", "interface_service", "interface_site", "interface_site_group", "interface_tag", "interface_tenant", "interface_tenant_group", "interface_tunnel", "interface_tunnel_group", "interface_tunnel_termination", "interface_vlan", "interface_vlan_group", "interface_vlan_translation_policy", "interface_vlan_translation_rule", "interface_vm_interface", "interface_vrf", "interface_virtual_chassis", "interface_virtual_circuit", "interface_virtual_circuit_termination", "interface_virtual_circuit_type", "interface_virtual_device_context", "interface_virtual_disk", "interface_virtual_machine", "interface_wireless_lan", "interface_wireless_lan_group", "interface_wireless_link", "interface_custom_field", "interface_custom_field_choice_set", "interface_journal_entry", "interface_module_type_profile", "interface_custom_link", "interface_owner", "interface_owner_group", "interface_cable_bundle", "interface_rack_group", "interface_script_module", "interface_virtual_machine_type", "interface_user", "priority", "metadata") GROUP_FIELD_NUMBER: _ClassVar[int] INTERFACE_ASN_FIELD_NUMBER: _ClassVar[int] INTERFACE_ASN_RANGE_FIELD_NUMBER: _ClassVar[int] @@ -1621,6 +1627,7 @@ class FHRPGroupAssignment(_message.Message): INTERFACE_RACK_GROUP_FIELD_NUMBER: _ClassVar[int] INTERFACE_SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] INTERFACE_VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + INTERFACE_USER_FIELD_NUMBER: _ClassVar[int] PRIORITY_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] group: FHRPGroup @@ -1723,9 +1730,10 @@ class FHRPGroupAssignment(_message.Message): interface_rack_group: RackGroup interface_script_module: ScriptModule interface_virtual_machine_type: VirtualMachineType + interface_user: User priority: int metadata: _struct_pb2.Struct - def __init__(self, group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., interface_asn: _Optional[_Union[ASN, _Mapping]] = ..., interface_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., interface_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., interface_cable: _Optional[_Union[Cable, _Mapping]] = ..., interface_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., interface_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., interface_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., interface_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., interface_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., interface_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., interface_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., interface_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., interface_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., interface_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., interface_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., interface_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., interface_contact: _Optional[_Union[Contact, _Mapping]] = ..., interface_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., interface_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., interface_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., interface_device: _Optional[_Union[Device, _Mapping]] = ..., interface_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., interface_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., interface_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., interface_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., interface_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., interface_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., interface_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., interface_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., interface_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., interface_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., interface_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., interface_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., interface_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., interface_interface: _Optional[_Union[Interface, _Mapping]] = ..., interface_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., interface_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., interface_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., interface_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., interface_location: _Optional[_Union[Location, _Mapping]] = ..., interface_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., interface_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., interface_module: _Optional[_Union[Module, _Mapping]] = ..., interface_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., interface_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., interface_platform: _Optional[_Union[Platform, _Mapping]] = ..., interface_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., interface_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., interface_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., interface_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., interface_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., interface_provider: _Optional[_Union[Provider, _Mapping]] = ..., interface_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., interface_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., interface_rir: _Optional[_Union[RIR, _Mapping]] = ..., interface_rack: _Optional[_Union[Rack, _Mapping]] = ..., interface_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., interface_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., interface_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., interface_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., interface_region: _Optional[_Union[Region, _Mapping]] = ..., interface_role: _Optional[_Union[Role, _Mapping]] = ..., interface_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., interface_service: _Optional[_Union[Service, _Mapping]] = ..., interface_site: _Optional[_Union[Site, _Mapping]] = ..., interface_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., interface_tag: _Optional[_Union[Tag, _Mapping]] = ..., interface_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., interface_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., interface_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., interface_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., interface_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., interface_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., interface_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., interface_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., interface_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., interface_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., interface_vrf: _Optional[_Union[VRF, _Mapping]] = ..., interface_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., interface_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., interface_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., interface_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., interface_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., interface_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., interface_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., interface_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., interface_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., interface_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., interface_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., interface_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., interface_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., interface_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., interface_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., interface_owner: _Optional[_Union[Owner, _Mapping]] = ..., interface_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., interface_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., interface_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., interface_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., interface_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., priority: _Optional[int] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + def __init__(self, group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., interface_asn: _Optional[_Union[ASN, _Mapping]] = ..., interface_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., interface_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., interface_cable: _Optional[_Union[Cable, _Mapping]] = ..., interface_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., interface_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., interface_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., interface_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., interface_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., interface_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., interface_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., interface_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., interface_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., interface_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., interface_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., interface_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., interface_contact: _Optional[_Union[Contact, _Mapping]] = ..., interface_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., interface_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., interface_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., interface_device: _Optional[_Union[Device, _Mapping]] = ..., interface_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., interface_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., interface_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., interface_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., interface_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., interface_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., interface_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., interface_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., interface_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., interface_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., interface_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., interface_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., interface_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., interface_interface: _Optional[_Union[Interface, _Mapping]] = ..., interface_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., interface_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., interface_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., interface_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., interface_location: _Optional[_Union[Location, _Mapping]] = ..., interface_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., interface_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., interface_module: _Optional[_Union[Module, _Mapping]] = ..., interface_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., interface_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., interface_platform: _Optional[_Union[Platform, _Mapping]] = ..., interface_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., interface_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., interface_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., interface_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., interface_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., interface_provider: _Optional[_Union[Provider, _Mapping]] = ..., interface_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., interface_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., interface_rir: _Optional[_Union[RIR, _Mapping]] = ..., interface_rack: _Optional[_Union[Rack, _Mapping]] = ..., interface_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., interface_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., interface_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., interface_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., interface_region: _Optional[_Union[Region, _Mapping]] = ..., interface_role: _Optional[_Union[Role, _Mapping]] = ..., interface_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., interface_service: _Optional[_Union[Service, _Mapping]] = ..., interface_site: _Optional[_Union[Site, _Mapping]] = ..., interface_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., interface_tag: _Optional[_Union[Tag, _Mapping]] = ..., interface_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., interface_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., interface_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., interface_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., interface_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., interface_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., interface_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., interface_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., interface_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., interface_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., interface_vrf: _Optional[_Union[VRF, _Mapping]] = ..., interface_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., interface_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., interface_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., interface_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., interface_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., interface_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., interface_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., interface_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., interface_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., interface_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., interface_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., interface_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., interface_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., interface_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., interface_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., interface_owner: _Optional[_Union[Owner, _Mapping]] = ..., interface_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., interface_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., interface_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., interface_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., interface_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., interface_user: _Optional[_Union[User, _Mapping]] = ..., priority: _Optional[int] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... class FrontPort(_message.Message): __slots__ = ("device", "module", "name", "label", "type", "color", "rear_port", "rear_port_position", "description", "mark_connected", "tags", "custom_fields", "metadata", "positions", "owner") @@ -1769,7 +1777,7 @@ class FrontPort(_message.Message): def __init__(self, device: _Optional[_Union[Device, _Mapping]] = ..., module: _Optional[_Union[Module, _Mapping]] = ..., name: _Optional[str] = ..., label: _Optional[str] = ..., type: _Optional[str] = ..., color: _Optional[str] = ..., rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., rear_port_position: _Optional[int] = ..., description: _Optional[str] = ..., mark_connected: bool = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., positions: _Optional[int] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ...) -> None: ... class GenericObject(_message.Message): - __slots__ = ("object_asn", "object_asn_range", "object_aggregate", "object_cable", "object_cable_path", "object_cable_termination", "object_circuit", "object_circuit_group", "object_circuit_group_assignment", "object_circuit_termination", "object_circuit_type", "object_cluster", "object_cluster_group", "object_cluster_type", "object_console_port", "object_console_server_port", "object_contact", "object_contact_assignment", "object_contact_group", "object_contact_role", "object_device", "object_device_bay", "object_device_role", "object_device_type", "object_fhrp_group", "object_fhrp_group_assignment", "object_front_port", "object_ike_policy", "object_ike_proposal", "object_ip_address", "object_ip_range", "object_ip_sec_policy", "object_ip_sec_profile", "object_ip_sec_proposal", "object_interface", "object_inventory_item", "object_inventory_item_role", "object_l2vpn", "object_l2vpn_termination", "object_location", "object_mac_address", "object_manufacturer", "object_module", "object_module_bay", "object_module_type", "object_platform", "object_power_feed", "object_power_outlet", "object_power_panel", "object_power_port", "object_prefix", "object_provider", "object_provider_account", "object_provider_network", "object_rir", "object_rack", "object_rack_reservation", "object_rack_role", "object_rack_type", "object_rear_port", "object_region", "object_role", "object_route_target", "object_service", "object_site", "object_site_group", "object_tag", "object_tenant", "object_tenant_group", "object_tunnel", "object_tunnel_group", "object_tunnel_termination", "object_vlan", "object_vlan_group", "object_vlan_translation_policy", "object_vlan_translation_rule", "object_vm_interface", "object_vrf", "object_virtual_chassis", "object_virtual_circuit", "object_virtual_circuit_termination", "object_virtual_circuit_type", "object_virtual_device_context", "object_virtual_disk", "object_virtual_machine", "object_wireless_lan", "object_wireless_lan_group", "object_wireless_link", "object_custom_field", "object_custom_field_choice_set", "object_journal_entry", "object_module_type_profile", "object_custom_link", "object_owner", "object_owner_group", "object_cable_bundle", "object_rack_group", "object_script_module", "object_virtual_machine_type") + __slots__ = ("object_asn", "object_asn_range", "object_aggregate", "object_cable", "object_cable_path", "object_cable_termination", "object_circuit", "object_circuit_group", "object_circuit_group_assignment", "object_circuit_termination", "object_circuit_type", "object_cluster", "object_cluster_group", "object_cluster_type", "object_console_port", "object_console_server_port", "object_contact", "object_contact_assignment", "object_contact_group", "object_contact_role", "object_device", "object_device_bay", "object_device_role", "object_device_type", "object_fhrp_group", "object_fhrp_group_assignment", "object_front_port", "object_ike_policy", "object_ike_proposal", "object_ip_address", "object_ip_range", "object_ip_sec_policy", "object_ip_sec_profile", "object_ip_sec_proposal", "object_interface", "object_inventory_item", "object_inventory_item_role", "object_l2vpn", "object_l2vpn_termination", "object_location", "object_mac_address", "object_manufacturer", "object_module", "object_module_bay", "object_module_type", "object_platform", "object_power_feed", "object_power_outlet", "object_power_panel", "object_power_port", "object_prefix", "object_provider", "object_provider_account", "object_provider_network", "object_rir", "object_rack", "object_rack_reservation", "object_rack_role", "object_rack_type", "object_rear_port", "object_region", "object_role", "object_route_target", "object_service", "object_site", "object_site_group", "object_tag", "object_tenant", "object_tenant_group", "object_tunnel", "object_tunnel_group", "object_tunnel_termination", "object_vlan", "object_vlan_group", "object_vlan_translation_policy", "object_vlan_translation_rule", "object_vm_interface", "object_vrf", "object_virtual_chassis", "object_virtual_circuit", "object_virtual_circuit_termination", "object_virtual_circuit_type", "object_virtual_device_context", "object_virtual_disk", "object_virtual_machine", "object_wireless_lan", "object_wireless_lan_group", "object_wireless_link", "object_custom_field", "object_custom_field_choice_set", "object_journal_entry", "object_module_type_profile", "object_custom_link", "object_owner", "object_owner_group", "object_cable_bundle", "object_rack_group", "object_script_module", "object_virtual_machine_type", "object_user") OBJECT_ASN_FIELD_NUMBER: _ClassVar[int] OBJECT_ASN_RANGE_FIELD_NUMBER: _ClassVar[int] OBJECT_AGGREGATE_FIELD_NUMBER: _ClassVar[int] @@ -1869,6 +1877,7 @@ class GenericObject(_message.Message): OBJECT_RACK_GROUP_FIELD_NUMBER: _ClassVar[int] OBJECT_SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] OBJECT_VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_USER_FIELD_NUMBER: _ClassVar[int] object_asn: ASN object_asn_range: ASNRange object_aggregate: Aggregate @@ -1968,7 +1977,8 @@ class GenericObject(_message.Message): object_rack_group: RackGroup object_script_module: ScriptModule object_virtual_machine_type: VirtualMachineType - def __init__(self, object_asn: _Optional[_Union[ASN, _Mapping]] = ..., object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., object_cable: _Optional[_Union[Cable, _Mapping]] = ..., object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., object_contact: _Optional[_Union[Contact, _Mapping]] = ..., object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., object_device: _Optional[_Union[Device, _Mapping]] = ..., object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., object_interface: _Optional[_Union[Interface, _Mapping]] = ..., object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., object_location: _Optional[_Union[Location, _Mapping]] = ..., object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., object_module: _Optional[_Union[Module, _Mapping]] = ..., object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., object_platform: _Optional[_Union[Platform, _Mapping]] = ..., object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., object_provider: _Optional[_Union[Provider, _Mapping]] = ..., object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., object_rir: _Optional[_Union[RIR, _Mapping]] = ..., object_rack: _Optional[_Union[Rack, _Mapping]] = ..., object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., object_region: _Optional[_Union[Region, _Mapping]] = ..., object_role: _Optional[_Union[Role, _Mapping]] = ..., object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., object_service: _Optional[_Union[Service, _Mapping]] = ..., object_site: _Optional[_Union[Site, _Mapping]] = ..., object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., object_tag: _Optional[_Union[Tag, _Mapping]] = ..., object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., object_owner: _Optional[_Union[Owner, _Mapping]] = ..., object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ...) -> None: ... + object_user: User + def __init__(self, object_asn: _Optional[_Union[ASN, _Mapping]] = ..., object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., object_cable: _Optional[_Union[Cable, _Mapping]] = ..., object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., object_contact: _Optional[_Union[Contact, _Mapping]] = ..., object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., object_device: _Optional[_Union[Device, _Mapping]] = ..., object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., object_interface: _Optional[_Union[Interface, _Mapping]] = ..., object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., object_location: _Optional[_Union[Location, _Mapping]] = ..., object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., object_module: _Optional[_Union[Module, _Mapping]] = ..., object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., object_platform: _Optional[_Union[Platform, _Mapping]] = ..., object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., object_provider: _Optional[_Union[Provider, _Mapping]] = ..., object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., object_rir: _Optional[_Union[RIR, _Mapping]] = ..., object_rack: _Optional[_Union[Rack, _Mapping]] = ..., object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., object_region: _Optional[_Union[Region, _Mapping]] = ..., object_role: _Optional[_Union[Role, _Mapping]] = ..., object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., object_service: _Optional[_Union[Service, _Mapping]] = ..., object_site: _Optional[_Union[Site, _Mapping]] = ..., object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., object_tag: _Optional[_Union[Tag, _Mapping]] = ..., object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., object_owner: _Optional[_Union[Owner, _Mapping]] = ..., object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., object_user: _Optional[_Union[User, _Mapping]] = ...) -> None: ... class IKEPolicy(_message.Message): __slots__ = ("name", "description", "version", "mode", "preshared_key", "comments", "tags", "custom_fields", "proposals", "metadata", "owner") @@ -2422,7 +2432,7 @@ class L2VPN(_message.Message): def __init__(self, identifier: _Optional[int] = ..., name: _Optional[str] = ..., slug: _Optional[str] = ..., type: _Optional[str] = ..., description: _Optional[str] = ..., comments: _Optional[str] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., import_targets: _Optional[_Iterable[_Union[RouteTarget, _Mapping]]] = ..., export_targets: _Optional[_Iterable[_Union[RouteTarget, _Mapping]]] = ..., status: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ...) -> None: ... class L2VPNTermination(_message.Message): - __slots__ = ("l2vpn", "assigned_object_interface", "assigned_object_vlan", "assigned_object_vm_interface", "assigned_object_asn", "assigned_object_asn_range", "assigned_object_aggregate", "assigned_object_cable", "assigned_object_cable_path", "assigned_object_cable_termination", "assigned_object_circuit", "assigned_object_circuit_group", "assigned_object_circuit_group_assignment", "assigned_object_circuit_termination", "assigned_object_circuit_type", "assigned_object_cluster", "assigned_object_cluster_group", "assigned_object_cluster_type", "assigned_object_console_port", "assigned_object_console_server_port", "assigned_object_contact", "assigned_object_contact_assignment", "assigned_object_contact_group", "assigned_object_contact_role", "assigned_object_custom_field", "assigned_object_custom_field_choice_set", "assigned_object_device", "assigned_object_device_bay", "assigned_object_device_role", "assigned_object_device_type", "assigned_object_fhrp_group", "assigned_object_fhrp_group_assignment", "assigned_object_front_port", "assigned_object_ike_policy", "assigned_object_ike_proposal", "assigned_object_ip_address", "assigned_object_ip_range", "assigned_object_ip_sec_policy", "assigned_object_ip_sec_profile", "assigned_object_ip_sec_proposal", "assigned_object_inventory_item", "assigned_object_inventory_item_role", "assigned_object_journal_entry", "assigned_object_l2vpn", "assigned_object_l2vpn_termination", "assigned_object_location", "assigned_object_mac_address", "assigned_object_manufacturer", "assigned_object_module", "assigned_object_module_bay", "assigned_object_module_type", "assigned_object_module_type_profile", "assigned_object_platform", "assigned_object_power_feed", "assigned_object_power_outlet", "assigned_object_power_panel", "assigned_object_power_port", "assigned_object_prefix", "assigned_object_provider", "assigned_object_provider_account", "assigned_object_provider_network", "assigned_object_rir", "assigned_object_rack", "assigned_object_rack_reservation", "assigned_object_rack_role", "assigned_object_rack_type", "assigned_object_rear_port", "assigned_object_region", "assigned_object_role", "assigned_object_route_target", "assigned_object_service", "assigned_object_site", "assigned_object_site_group", "assigned_object_tag", "assigned_object_tenant", "assigned_object_tenant_group", "assigned_object_tunnel", "assigned_object_tunnel_group", "assigned_object_tunnel_termination", "assigned_object_vlan_group", "assigned_object_vlan_translation_policy", "assigned_object_vlan_translation_rule", "assigned_object_vrf", "assigned_object_virtual_chassis", "assigned_object_virtual_circuit", "assigned_object_virtual_circuit_termination", "assigned_object_virtual_circuit_type", "assigned_object_virtual_device_context", "assigned_object_virtual_disk", "assigned_object_virtual_machine", "assigned_object_wireless_lan", "assigned_object_wireless_lan_group", "assigned_object_wireless_link", "assigned_object_custom_link", "assigned_object_owner", "assigned_object_owner_group", "assigned_object_cable_bundle", "assigned_object_rack_group", "assigned_object_script_module", "assigned_object_virtual_machine_type", "tags", "custom_fields", "metadata") + __slots__ = ("l2vpn", "assigned_object_interface", "assigned_object_vlan", "assigned_object_vm_interface", "assigned_object_asn", "assigned_object_asn_range", "assigned_object_aggregate", "assigned_object_cable", "assigned_object_cable_path", "assigned_object_cable_termination", "assigned_object_circuit", "assigned_object_circuit_group", "assigned_object_circuit_group_assignment", "assigned_object_circuit_termination", "assigned_object_circuit_type", "assigned_object_cluster", "assigned_object_cluster_group", "assigned_object_cluster_type", "assigned_object_console_port", "assigned_object_console_server_port", "assigned_object_contact", "assigned_object_contact_assignment", "assigned_object_contact_group", "assigned_object_contact_role", "assigned_object_custom_field", "assigned_object_custom_field_choice_set", "assigned_object_device", "assigned_object_device_bay", "assigned_object_device_role", "assigned_object_device_type", "assigned_object_fhrp_group", "assigned_object_fhrp_group_assignment", "assigned_object_front_port", "assigned_object_ike_policy", "assigned_object_ike_proposal", "assigned_object_ip_address", "assigned_object_ip_range", "assigned_object_ip_sec_policy", "assigned_object_ip_sec_profile", "assigned_object_ip_sec_proposal", "assigned_object_inventory_item", "assigned_object_inventory_item_role", "assigned_object_journal_entry", "assigned_object_l2vpn", "assigned_object_l2vpn_termination", "assigned_object_location", "assigned_object_mac_address", "assigned_object_manufacturer", "assigned_object_module", "assigned_object_module_bay", "assigned_object_module_type", "assigned_object_module_type_profile", "assigned_object_platform", "assigned_object_power_feed", "assigned_object_power_outlet", "assigned_object_power_panel", "assigned_object_power_port", "assigned_object_prefix", "assigned_object_provider", "assigned_object_provider_account", "assigned_object_provider_network", "assigned_object_rir", "assigned_object_rack", "assigned_object_rack_reservation", "assigned_object_rack_role", "assigned_object_rack_type", "assigned_object_rear_port", "assigned_object_region", "assigned_object_role", "assigned_object_route_target", "assigned_object_service", "assigned_object_site", "assigned_object_site_group", "assigned_object_tag", "assigned_object_tenant", "assigned_object_tenant_group", "assigned_object_tunnel", "assigned_object_tunnel_group", "assigned_object_tunnel_termination", "assigned_object_vlan_group", "assigned_object_vlan_translation_policy", "assigned_object_vlan_translation_rule", "assigned_object_vrf", "assigned_object_virtual_chassis", "assigned_object_virtual_circuit", "assigned_object_virtual_circuit_termination", "assigned_object_virtual_circuit_type", "assigned_object_virtual_device_context", "assigned_object_virtual_disk", "assigned_object_virtual_machine", "assigned_object_wireless_lan", "assigned_object_wireless_lan_group", "assigned_object_wireless_link", "assigned_object_custom_link", "assigned_object_owner", "assigned_object_owner_group", "assigned_object_cable_bundle", "assigned_object_rack_group", "assigned_object_script_module", "assigned_object_virtual_machine_type", "assigned_object_user", "tags", "custom_fields", "metadata") class CustomFieldsEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -2530,6 +2540,7 @@ class L2VPNTermination(_message.Message): ASSIGNED_OBJECT_RACK_GROUP_FIELD_NUMBER: _ClassVar[int] ASSIGNED_OBJECT_SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] ASSIGNED_OBJECT_VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + ASSIGNED_OBJECT_USER_FIELD_NUMBER: _ClassVar[int] TAGS_FIELD_NUMBER: _ClassVar[int] CUSTOM_FIELDS_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] @@ -2633,10 +2644,11 @@ class L2VPNTermination(_message.Message): assigned_object_rack_group: RackGroup assigned_object_script_module: ScriptModule assigned_object_virtual_machine_type: VirtualMachineType + assigned_object_user: User tags: _containers.RepeatedCompositeFieldContainer[Tag] custom_fields: _containers.MessageMap[str, CustomFieldValue] metadata: _struct_pb2.Struct - def __init__(self, l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., assigned_object_interface: _Optional[_Union[Interface, _Mapping]] = ..., assigned_object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., assigned_object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., assigned_object_asn: _Optional[_Union[ASN, _Mapping]] = ..., assigned_object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., assigned_object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., assigned_object_cable: _Optional[_Union[Cable, _Mapping]] = ..., assigned_object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., assigned_object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., assigned_object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., assigned_object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., assigned_object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., assigned_object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., assigned_object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., assigned_object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., assigned_object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., assigned_object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., assigned_object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., assigned_object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., assigned_object_contact: _Optional[_Union[Contact, _Mapping]] = ..., assigned_object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., assigned_object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., assigned_object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., assigned_object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., assigned_object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., assigned_object_device: _Optional[_Union[Device, _Mapping]] = ..., assigned_object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., assigned_object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., assigned_object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., assigned_object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., assigned_object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., assigned_object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., assigned_object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., assigned_object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., assigned_object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., assigned_object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., assigned_object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., assigned_object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., assigned_object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., assigned_object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., assigned_object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., assigned_object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., assigned_object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., assigned_object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., assigned_object_location: _Optional[_Union[Location, _Mapping]] = ..., assigned_object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., assigned_object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., assigned_object_module: _Optional[_Union[Module, _Mapping]] = ..., assigned_object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., assigned_object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., assigned_object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., assigned_object_platform: _Optional[_Union[Platform, _Mapping]] = ..., assigned_object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., assigned_object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., assigned_object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., assigned_object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., assigned_object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., assigned_object_provider: _Optional[_Union[Provider, _Mapping]] = ..., assigned_object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., assigned_object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., assigned_object_rir: _Optional[_Union[RIR, _Mapping]] = ..., assigned_object_rack: _Optional[_Union[Rack, _Mapping]] = ..., assigned_object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., assigned_object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., assigned_object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., assigned_object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., assigned_object_region: _Optional[_Union[Region, _Mapping]] = ..., assigned_object_role: _Optional[_Union[Role, _Mapping]] = ..., assigned_object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., assigned_object_service: _Optional[_Union[Service, _Mapping]] = ..., assigned_object_site: _Optional[_Union[Site, _Mapping]] = ..., assigned_object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., assigned_object_tag: _Optional[_Union[Tag, _Mapping]] = ..., assigned_object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., assigned_object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., assigned_object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., assigned_object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., assigned_object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., assigned_object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., assigned_object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., assigned_object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., assigned_object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., assigned_object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., assigned_object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., assigned_object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., assigned_object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., assigned_object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., assigned_object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., assigned_object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., assigned_object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., assigned_object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., assigned_object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., assigned_object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., assigned_object_owner: _Optional[_Union[Owner, _Mapping]] = ..., assigned_object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., assigned_object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., assigned_object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., assigned_object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., assigned_object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + def __init__(self, l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., assigned_object_interface: _Optional[_Union[Interface, _Mapping]] = ..., assigned_object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., assigned_object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., assigned_object_asn: _Optional[_Union[ASN, _Mapping]] = ..., assigned_object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., assigned_object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., assigned_object_cable: _Optional[_Union[Cable, _Mapping]] = ..., assigned_object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., assigned_object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., assigned_object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., assigned_object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., assigned_object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., assigned_object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., assigned_object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., assigned_object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., assigned_object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., assigned_object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., assigned_object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., assigned_object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., assigned_object_contact: _Optional[_Union[Contact, _Mapping]] = ..., assigned_object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., assigned_object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., assigned_object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., assigned_object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., assigned_object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., assigned_object_device: _Optional[_Union[Device, _Mapping]] = ..., assigned_object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., assigned_object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., assigned_object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., assigned_object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., assigned_object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., assigned_object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., assigned_object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., assigned_object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., assigned_object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., assigned_object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., assigned_object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., assigned_object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., assigned_object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., assigned_object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., assigned_object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., assigned_object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., assigned_object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., assigned_object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., assigned_object_location: _Optional[_Union[Location, _Mapping]] = ..., assigned_object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., assigned_object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., assigned_object_module: _Optional[_Union[Module, _Mapping]] = ..., assigned_object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., assigned_object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., assigned_object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., assigned_object_platform: _Optional[_Union[Platform, _Mapping]] = ..., assigned_object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., assigned_object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., assigned_object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., assigned_object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., assigned_object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., assigned_object_provider: _Optional[_Union[Provider, _Mapping]] = ..., assigned_object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., assigned_object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., assigned_object_rir: _Optional[_Union[RIR, _Mapping]] = ..., assigned_object_rack: _Optional[_Union[Rack, _Mapping]] = ..., assigned_object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., assigned_object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., assigned_object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., assigned_object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., assigned_object_region: _Optional[_Union[Region, _Mapping]] = ..., assigned_object_role: _Optional[_Union[Role, _Mapping]] = ..., assigned_object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., assigned_object_service: _Optional[_Union[Service, _Mapping]] = ..., assigned_object_site: _Optional[_Union[Site, _Mapping]] = ..., assigned_object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., assigned_object_tag: _Optional[_Union[Tag, _Mapping]] = ..., assigned_object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., assigned_object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., assigned_object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., assigned_object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., assigned_object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., assigned_object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., assigned_object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., assigned_object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., assigned_object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., assigned_object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., assigned_object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., assigned_object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., assigned_object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., assigned_object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., assigned_object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., assigned_object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., assigned_object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., assigned_object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., assigned_object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., assigned_object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., assigned_object_owner: _Optional[_Union[Owner, _Mapping]] = ..., assigned_object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., assigned_object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., assigned_object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., assigned_object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., assigned_object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., assigned_object_user: _Optional[_Union[User, _Mapping]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... class Location(_message.Message): __slots__ = ("name", "slug", "site", "parent", "status", "tenant", "facility", "description", "tags", "custom_fields", "comments", "metadata", "owner") @@ -3268,7 +3280,7 @@ class Rack(_message.Message): def __init__(self, name: _Optional[str] = ..., facility_id: _Optional[str] = ..., site: _Optional[_Union[Site, _Mapping]] = ..., location: _Optional[_Union[Location, _Mapping]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., status: _Optional[str] = ..., role: _Optional[_Union[RackRole, _Mapping]] = ..., serial: _Optional[str] = ..., asset_tag: _Optional[str] = ..., rack_type: _Optional[_Union[RackType, _Mapping]] = ..., form_factor: _Optional[str] = ..., width: _Optional[int] = ..., u_height: _Optional[int] = ..., starting_unit: _Optional[int] = ..., weight: _Optional[float] = ..., max_weight: _Optional[int] = ..., weight_unit: _Optional[str] = ..., desc_units: bool = ..., outer_width: _Optional[int] = ..., outer_depth: _Optional[int] = ..., outer_unit: _Optional[str] = ..., mounting_depth: _Optional[int] = ..., airflow: _Optional[str] = ..., description: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., outer_height: _Optional[int] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., group: _Optional[_Union[RackGroup, _Mapping]] = ...) -> None: ... class RackReservation(_message.Message): - __slots__ = ("rack", "units", "tenant", "description", "comments", "tags", "custom_fields", "status", "metadata", "owner") + __slots__ = ("rack", "units", "tenant", "description", "comments", "tags", "custom_fields", "status", "metadata", "owner", "user") class CustomFieldsEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -3286,6 +3298,7 @@ class RackReservation(_message.Message): STATUS_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] OWNER_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] rack: Rack units: _containers.RepeatedScalarFieldContainer[int] tenant: Tenant @@ -3296,7 +3309,8 @@ class RackReservation(_message.Message): status: str metadata: _struct_pb2.Struct owner: Owner - def __init__(self, rack: _Optional[_Union[Rack, _Mapping]] = ..., units: _Optional[_Iterable[int]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., description: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., status: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ...) -> None: ... + user: User + def __init__(self, rack: _Optional[_Union[Rack, _Mapping]] = ..., units: _Optional[_Iterable[int]] = ..., tenant: _Optional[_Union[Tenant, _Mapping]] = ..., description: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., status: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., user: _Optional[_Union[User, _Mapping]] = ...) -> None: ... class RackRole(_message.Message): __slots__ = ("name", "slug", "color", "description", "tags", "custom_fields", "metadata", "owner", "comments") @@ -3764,7 +3778,7 @@ class TunnelGroup(_message.Message): def __init__(self, name: _Optional[str] = ..., slug: _Optional[str] = ..., description: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., comments: _Optional[str] = ...) -> None: ... class TunnelTermination(_message.Message): - __slots__ = ("tunnel", "role", "termination_asn", "termination_asn_range", "termination_aggregate", "termination_cable", "termination_cable_path", "termination_cable_termination", "termination_circuit", "termination_circuit_group", "termination_circuit_group_assignment", "termination_circuit_termination", "termination_circuit_type", "termination_cluster", "termination_cluster_group", "termination_cluster_type", "termination_console_port", "termination_console_server_port", "termination_contact", "termination_contact_assignment", "termination_contact_group", "termination_contact_role", "termination_device", "termination_device_bay", "termination_device_role", "termination_device_type", "termination_fhrp_group", "termination_fhrp_group_assignment", "termination_front_port", "termination_ike_policy", "termination_ike_proposal", "termination_ip_address", "termination_ip_range", "termination_ip_sec_policy", "termination_ip_sec_profile", "termination_ip_sec_proposal", "termination_interface", "termination_inventory_item", "termination_inventory_item_role", "termination_l2vpn", "termination_l2vpn_termination", "termination_location", "termination_mac_address", "termination_manufacturer", "termination_module", "termination_module_bay", "termination_module_type", "termination_platform", "termination_power_feed", "termination_power_outlet", "termination_power_panel", "termination_power_port", "termination_prefix", "termination_provider", "termination_provider_account", "termination_provider_network", "termination_rir", "termination_rack", "termination_rack_reservation", "termination_rack_role", "termination_rack_type", "termination_rear_port", "termination_region", "termination_role", "termination_route_target", "termination_service", "termination_site", "termination_site_group", "termination_tag", "termination_tenant", "termination_tenant_group", "termination_tunnel", "termination_tunnel_group", "termination_tunnel_termination", "termination_vlan", "termination_vlan_group", "termination_vlan_translation_policy", "termination_vlan_translation_rule", "termination_vm_interface", "termination_vrf", "termination_virtual_chassis", "termination_virtual_circuit", "termination_virtual_circuit_termination", "termination_virtual_circuit_type", "termination_virtual_device_context", "termination_virtual_disk", "termination_virtual_machine", "termination_wireless_lan", "termination_wireless_lan_group", "termination_wireless_link", "termination_custom_field", "termination_custom_field_choice_set", "termination_journal_entry", "termination_module_type_profile", "termination_custom_link", "termination_owner", "termination_owner_group", "termination_cable_bundle", "termination_rack_group", "termination_script_module", "termination_virtual_machine_type", "outside_ip", "tags", "custom_fields", "metadata") + __slots__ = ("tunnel", "role", "termination_asn", "termination_asn_range", "termination_aggregate", "termination_cable", "termination_cable_path", "termination_cable_termination", "termination_circuit", "termination_circuit_group", "termination_circuit_group_assignment", "termination_circuit_termination", "termination_circuit_type", "termination_cluster", "termination_cluster_group", "termination_cluster_type", "termination_console_port", "termination_console_server_port", "termination_contact", "termination_contact_assignment", "termination_contact_group", "termination_contact_role", "termination_device", "termination_device_bay", "termination_device_role", "termination_device_type", "termination_fhrp_group", "termination_fhrp_group_assignment", "termination_front_port", "termination_ike_policy", "termination_ike_proposal", "termination_ip_address", "termination_ip_range", "termination_ip_sec_policy", "termination_ip_sec_profile", "termination_ip_sec_proposal", "termination_interface", "termination_inventory_item", "termination_inventory_item_role", "termination_l2vpn", "termination_l2vpn_termination", "termination_location", "termination_mac_address", "termination_manufacturer", "termination_module", "termination_module_bay", "termination_module_type", "termination_platform", "termination_power_feed", "termination_power_outlet", "termination_power_panel", "termination_power_port", "termination_prefix", "termination_provider", "termination_provider_account", "termination_provider_network", "termination_rir", "termination_rack", "termination_rack_reservation", "termination_rack_role", "termination_rack_type", "termination_rear_port", "termination_region", "termination_role", "termination_route_target", "termination_service", "termination_site", "termination_site_group", "termination_tag", "termination_tenant", "termination_tenant_group", "termination_tunnel", "termination_tunnel_group", "termination_tunnel_termination", "termination_vlan", "termination_vlan_group", "termination_vlan_translation_policy", "termination_vlan_translation_rule", "termination_vm_interface", "termination_vrf", "termination_virtual_chassis", "termination_virtual_circuit", "termination_virtual_circuit_termination", "termination_virtual_circuit_type", "termination_virtual_device_context", "termination_virtual_disk", "termination_virtual_machine", "termination_wireless_lan", "termination_wireless_lan_group", "termination_wireless_link", "termination_custom_field", "termination_custom_field_choice_set", "termination_journal_entry", "termination_module_type_profile", "termination_custom_link", "termination_owner", "termination_owner_group", "termination_cable_bundle", "termination_rack_group", "termination_script_module", "termination_virtual_machine_type", "termination_user", "outside_ip", "tags", "custom_fields", "metadata") class CustomFieldsEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -3873,6 +3887,7 @@ class TunnelTermination(_message.Message): TERMINATION_RACK_GROUP_FIELD_NUMBER: _ClassVar[int] TERMINATION_SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] TERMINATION_VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + TERMINATION_USER_FIELD_NUMBER: _ClassVar[int] OUTSIDE_IP_FIELD_NUMBER: _ClassVar[int] TAGS_FIELD_NUMBER: _ClassVar[int] CUSTOM_FIELDS_FIELD_NUMBER: _ClassVar[int] @@ -3978,11 +3993,12 @@ class TunnelTermination(_message.Message): termination_rack_group: RackGroup termination_script_module: ScriptModule termination_virtual_machine_type: VirtualMachineType + termination_user: User outside_ip: IPAddress tags: _containers.RepeatedCompositeFieldContainer[Tag] custom_fields: _containers.MessageMap[str, CustomFieldValue] metadata: _struct_pb2.Struct - def __init__(self, tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., role: _Optional[str] = ..., termination_asn: _Optional[_Union[ASN, _Mapping]] = ..., termination_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., termination_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., termination_cable: _Optional[_Union[Cable, _Mapping]] = ..., termination_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., termination_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., termination_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., termination_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., termination_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., termination_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., termination_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., termination_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., termination_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., termination_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., termination_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., termination_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., termination_contact: _Optional[_Union[Contact, _Mapping]] = ..., termination_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., termination_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., termination_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., termination_device: _Optional[_Union[Device, _Mapping]] = ..., termination_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., termination_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., termination_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., termination_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., termination_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., termination_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., termination_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., termination_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., termination_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., termination_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., termination_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., termination_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., termination_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., termination_interface: _Optional[_Union[Interface, _Mapping]] = ..., termination_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., termination_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., termination_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., termination_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., termination_location: _Optional[_Union[Location, _Mapping]] = ..., termination_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., termination_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., termination_module: _Optional[_Union[Module, _Mapping]] = ..., termination_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., termination_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., termination_platform: _Optional[_Union[Platform, _Mapping]] = ..., termination_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., termination_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., termination_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., termination_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., termination_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., termination_provider: _Optional[_Union[Provider, _Mapping]] = ..., termination_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., termination_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., termination_rir: _Optional[_Union[RIR, _Mapping]] = ..., termination_rack: _Optional[_Union[Rack, _Mapping]] = ..., termination_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., termination_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., termination_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., termination_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., termination_region: _Optional[_Union[Region, _Mapping]] = ..., termination_role: _Optional[_Union[Role, _Mapping]] = ..., termination_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., termination_service: _Optional[_Union[Service, _Mapping]] = ..., termination_site: _Optional[_Union[Site, _Mapping]] = ..., termination_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., termination_tag: _Optional[_Union[Tag, _Mapping]] = ..., termination_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., termination_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., termination_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., termination_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., termination_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., termination_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., termination_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., termination_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., termination_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., termination_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., termination_vrf: _Optional[_Union[VRF, _Mapping]] = ..., termination_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., termination_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., termination_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., termination_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., termination_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., termination_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., termination_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., termination_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., termination_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., termination_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., termination_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., termination_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., termination_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., termination_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., termination_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., termination_owner: _Optional[_Union[Owner, _Mapping]] = ..., termination_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., termination_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., termination_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., termination_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., termination_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., outside_ip: _Optional[_Union[IPAddress, _Mapping]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + def __init__(self, tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., role: _Optional[str] = ..., termination_asn: _Optional[_Union[ASN, _Mapping]] = ..., termination_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., termination_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., termination_cable: _Optional[_Union[Cable, _Mapping]] = ..., termination_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., termination_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., termination_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., termination_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., termination_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., termination_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., termination_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., termination_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., termination_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., termination_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., termination_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., termination_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., termination_contact: _Optional[_Union[Contact, _Mapping]] = ..., termination_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., termination_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., termination_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., termination_device: _Optional[_Union[Device, _Mapping]] = ..., termination_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., termination_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., termination_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., termination_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., termination_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., termination_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., termination_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., termination_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., termination_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., termination_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., termination_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., termination_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., termination_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., termination_interface: _Optional[_Union[Interface, _Mapping]] = ..., termination_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., termination_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., termination_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., termination_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., termination_location: _Optional[_Union[Location, _Mapping]] = ..., termination_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., termination_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., termination_module: _Optional[_Union[Module, _Mapping]] = ..., termination_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., termination_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., termination_platform: _Optional[_Union[Platform, _Mapping]] = ..., termination_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., termination_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., termination_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., termination_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., termination_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., termination_provider: _Optional[_Union[Provider, _Mapping]] = ..., termination_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., termination_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., termination_rir: _Optional[_Union[RIR, _Mapping]] = ..., termination_rack: _Optional[_Union[Rack, _Mapping]] = ..., termination_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., termination_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., termination_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., termination_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., termination_region: _Optional[_Union[Region, _Mapping]] = ..., termination_role: _Optional[_Union[Role, _Mapping]] = ..., termination_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., termination_service: _Optional[_Union[Service, _Mapping]] = ..., termination_site: _Optional[_Union[Site, _Mapping]] = ..., termination_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., termination_tag: _Optional[_Union[Tag, _Mapping]] = ..., termination_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., termination_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., termination_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., termination_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., termination_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., termination_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., termination_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., termination_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., termination_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., termination_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., termination_vrf: _Optional[_Union[VRF, _Mapping]] = ..., termination_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., termination_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., termination_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., termination_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., termination_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., termination_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., termination_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., termination_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., termination_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., termination_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., termination_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., termination_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., termination_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., termination_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., termination_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., termination_owner: _Optional[_Union[Owner, _Mapping]] = ..., termination_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., termination_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., termination_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., termination_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., termination_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., termination_user: _Optional[_Union[User, _Mapping]] = ..., outside_ip: _Optional[_Union[IPAddress, _Mapping]] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... class VLAN(_message.Message): __slots__ = ("site", "group", "vid", "name", "tenant", "status", "role", "description", "qinq_role", "qinq_svlan", "comments", "tags", "custom_fields", "metadata", "owner") @@ -4613,7 +4629,7 @@ class CustomFieldChoiceSet(_message.Message): def __init__(self, name: _Optional[str] = ..., description: _Optional[str] = ..., base_choices: _Optional[str] = ..., order_alphabetically: bool = ..., extra_choices: _Optional[_Iterable[str]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., choice_colors: _Optional[str] = ...) -> None: ... class JournalEntry(_message.Message): - __slots__ = ("assigned_object_asn", "assigned_object_asn_range", "assigned_object_aggregate", "assigned_object_cable", "assigned_object_cable_path", "assigned_object_cable_termination", "assigned_object_circuit", "assigned_object_circuit_group", "assigned_object_circuit_group_assignment", "assigned_object_circuit_termination", "assigned_object_circuit_type", "assigned_object_cluster", "assigned_object_cluster_group", "assigned_object_cluster_type", "assigned_object_console_port", "assigned_object_console_server_port", "assigned_object_contact", "assigned_object_contact_assignment", "assigned_object_contact_group", "assigned_object_contact_role", "assigned_object_custom_field", "assigned_object_custom_field_choice_set", "assigned_object_device", "assigned_object_device_bay", "assigned_object_device_role", "assigned_object_device_type", "assigned_object_fhrp_group", "assigned_object_fhrp_group_assignment", "assigned_object_front_port", "assigned_object_ike_policy", "assigned_object_ike_proposal", "assigned_object_ip_address", "assigned_object_ip_range", "assigned_object_ip_sec_policy", "assigned_object_ip_sec_profile", "assigned_object_ip_sec_proposal", "assigned_object_interface", "assigned_object_inventory_item", "assigned_object_inventory_item_role", "assigned_object_journal_entry", "assigned_object_l2vpn", "assigned_object_l2vpn_termination", "assigned_object_location", "assigned_object_mac_address", "assigned_object_manufacturer", "assigned_object_module", "assigned_object_module_bay", "assigned_object_module_type", "assigned_object_module_type_profile", "assigned_object_platform", "assigned_object_power_feed", "assigned_object_power_outlet", "assigned_object_power_panel", "assigned_object_power_port", "assigned_object_prefix", "assigned_object_provider", "assigned_object_provider_account", "assigned_object_provider_network", "assigned_object_rir", "assigned_object_rack", "assigned_object_rack_reservation", "assigned_object_rack_role", "assigned_object_rack_type", "assigned_object_rear_port", "assigned_object_region", "assigned_object_role", "assigned_object_route_target", "assigned_object_service", "assigned_object_site", "assigned_object_site_group", "assigned_object_tag", "assigned_object_tenant", "assigned_object_tenant_group", "assigned_object_tunnel", "assigned_object_tunnel_group", "assigned_object_tunnel_termination", "assigned_object_vlan", "assigned_object_vlan_group", "assigned_object_vlan_translation_policy", "assigned_object_vlan_translation_rule", "assigned_object_vm_interface", "assigned_object_vrf", "assigned_object_virtual_chassis", "assigned_object_virtual_circuit", "assigned_object_virtual_circuit_termination", "assigned_object_virtual_circuit_type", "assigned_object_virtual_device_context", "assigned_object_virtual_disk", "assigned_object_virtual_machine", "assigned_object_wireless_lan", "assigned_object_wireless_lan_group", "assigned_object_wireless_link", "assigned_object_custom_link", "assigned_object_owner", "assigned_object_owner_group", "assigned_object_cable_bundle", "assigned_object_rack_group", "assigned_object_script_module", "assigned_object_virtual_machine_type", "kind", "comments", "tags", "custom_fields", "metadata") + __slots__ = ("assigned_object_asn", "assigned_object_asn_range", "assigned_object_aggregate", "assigned_object_cable", "assigned_object_cable_path", "assigned_object_cable_termination", "assigned_object_circuit", "assigned_object_circuit_group", "assigned_object_circuit_group_assignment", "assigned_object_circuit_termination", "assigned_object_circuit_type", "assigned_object_cluster", "assigned_object_cluster_group", "assigned_object_cluster_type", "assigned_object_console_port", "assigned_object_console_server_port", "assigned_object_contact", "assigned_object_contact_assignment", "assigned_object_contact_group", "assigned_object_contact_role", "assigned_object_custom_field", "assigned_object_custom_field_choice_set", "assigned_object_device", "assigned_object_device_bay", "assigned_object_device_role", "assigned_object_device_type", "assigned_object_fhrp_group", "assigned_object_fhrp_group_assignment", "assigned_object_front_port", "assigned_object_ike_policy", "assigned_object_ike_proposal", "assigned_object_ip_address", "assigned_object_ip_range", "assigned_object_ip_sec_policy", "assigned_object_ip_sec_profile", "assigned_object_ip_sec_proposal", "assigned_object_interface", "assigned_object_inventory_item", "assigned_object_inventory_item_role", "assigned_object_journal_entry", "assigned_object_l2vpn", "assigned_object_l2vpn_termination", "assigned_object_location", "assigned_object_mac_address", "assigned_object_manufacturer", "assigned_object_module", "assigned_object_module_bay", "assigned_object_module_type", "assigned_object_module_type_profile", "assigned_object_platform", "assigned_object_power_feed", "assigned_object_power_outlet", "assigned_object_power_panel", "assigned_object_power_port", "assigned_object_prefix", "assigned_object_provider", "assigned_object_provider_account", "assigned_object_provider_network", "assigned_object_rir", "assigned_object_rack", "assigned_object_rack_reservation", "assigned_object_rack_role", "assigned_object_rack_type", "assigned_object_rear_port", "assigned_object_region", "assigned_object_role", "assigned_object_route_target", "assigned_object_service", "assigned_object_site", "assigned_object_site_group", "assigned_object_tag", "assigned_object_tenant", "assigned_object_tenant_group", "assigned_object_tunnel", "assigned_object_tunnel_group", "assigned_object_tunnel_termination", "assigned_object_vlan", "assigned_object_vlan_group", "assigned_object_vlan_translation_policy", "assigned_object_vlan_translation_rule", "assigned_object_vm_interface", "assigned_object_vrf", "assigned_object_virtual_chassis", "assigned_object_virtual_circuit", "assigned_object_virtual_circuit_termination", "assigned_object_virtual_circuit_type", "assigned_object_virtual_device_context", "assigned_object_virtual_disk", "assigned_object_virtual_machine", "assigned_object_wireless_lan", "assigned_object_wireless_lan_group", "assigned_object_wireless_link", "assigned_object_custom_link", "assigned_object_owner", "assigned_object_owner_group", "assigned_object_cable_bundle", "assigned_object_rack_group", "assigned_object_script_module", "assigned_object_virtual_machine_type", "assigned_object_user", "kind", "comments", "tags", "custom_fields", "metadata", "created_by") class CustomFieldsEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -4720,11 +4736,13 @@ class JournalEntry(_message.Message): ASSIGNED_OBJECT_RACK_GROUP_FIELD_NUMBER: _ClassVar[int] ASSIGNED_OBJECT_SCRIPT_MODULE_FIELD_NUMBER: _ClassVar[int] ASSIGNED_OBJECT_VIRTUAL_MACHINE_TYPE_FIELD_NUMBER: _ClassVar[int] + ASSIGNED_OBJECT_USER_FIELD_NUMBER: _ClassVar[int] KIND_FIELD_NUMBER: _ClassVar[int] COMMENTS_FIELD_NUMBER: _ClassVar[int] TAGS_FIELD_NUMBER: _ClassVar[int] CUSTOM_FIELDS_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] + CREATED_BY_FIELD_NUMBER: _ClassVar[int] assigned_object_asn: ASN assigned_object_asn_range: ASNRange assigned_object_aggregate: Aggregate @@ -4824,12 +4842,14 @@ class JournalEntry(_message.Message): assigned_object_rack_group: RackGroup assigned_object_script_module: ScriptModule assigned_object_virtual_machine_type: VirtualMachineType + assigned_object_user: User kind: str comments: str tags: _containers.RepeatedCompositeFieldContainer[Tag] custom_fields: _containers.MessageMap[str, CustomFieldValue] metadata: _struct_pb2.Struct - def __init__(self, assigned_object_asn: _Optional[_Union[ASN, _Mapping]] = ..., assigned_object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., assigned_object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., assigned_object_cable: _Optional[_Union[Cable, _Mapping]] = ..., assigned_object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., assigned_object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., assigned_object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., assigned_object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., assigned_object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., assigned_object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., assigned_object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., assigned_object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., assigned_object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., assigned_object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., assigned_object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., assigned_object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., assigned_object_contact: _Optional[_Union[Contact, _Mapping]] = ..., assigned_object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., assigned_object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., assigned_object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., assigned_object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., assigned_object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., assigned_object_device: _Optional[_Union[Device, _Mapping]] = ..., assigned_object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., assigned_object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., assigned_object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., assigned_object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., assigned_object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., assigned_object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., assigned_object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., assigned_object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., assigned_object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., assigned_object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., assigned_object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., assigned_object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., assigned_object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., assigned_object_interface: _Optional[_Union[Interface, _Mapping]] = ..., assigned_object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., assigned_object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., assigned_object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., assigned_object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., assigned_object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., assigned_object_location: _Optional[_Union[Location, _Mapping]] = ..., assigned_object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., assigned_object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., assigned_object_module: _Optional[_Union[Module, _Mapping]] = ..., assigned_object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., assigned_object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., assigned_object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., assigned_object_platform: _Optional[_Union[Platform, _Mapping]] = ..., assigned_object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., assigned_object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., assigned_object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., assigned_object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., assigned_object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., assigned_object_provider: _Optional[_Union[Provider, _Mapping]] = ..., assigned_object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., assigned_object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., assigned_object_rir: _Optional[_Union[RIR, _Mapping]] = ..., assigned_object_rack: _Optional[_Union[Rack, _Mapping]] = ..., assigned_object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., assigned_object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., assigned_object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., assigned_object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., assigned_object_region: _Optional[_Union[Region, _Mapping]] = ..., assigned_object_role: _Optional[_Union[Role, _Mapping]] = ..., assigned_object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., assigned_object_service: _Optional[_Union[Service, _Mapping]] = ..., assigned_object_site: _Optional[_Union[Site, _Mapping]] = ..., assigned_object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., assigned_object_tag: _Optional[_Union[Tag, _Mapping]] = ..., assigned_object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., assigned_object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., assigned_object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., assigned_object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., assigned_object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., assigned_object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., assigned_object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., assigned_object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., assigned_object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., assigned_object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., assigned_object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., assigned_object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., assigned_object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., assigned_object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., assigned_object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., assigned_object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., assigned_object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., assigned_object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., assigned_object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., assigned_object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., assigned_object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., assigned_object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., assigned_object_owner: _Optional[_Union[Owner, _Mapping]] = ..., assigned_object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., assigned_object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., assigned_object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., assigned_object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., assigned_object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., kind: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + created_by: User + def __init__(self, assigned_object_asn: _Optional[_Union[ASN, _Mapping]] = ..., assigned_object_asn_range: _Optional[_Union[ASNRange, _Mapping]] = ..., assigned_object_aggregate: _Optional[_Union[Aggregate, _Mapping]] = ..., assigned_object_cable: _Optional[_Union[Cable, _Mapping]] = ..., assigned_object_cable_path: _Optional[_Union[CablePath, _Mapping]] = ..., assigned_object_cable_termination: _Optional[_Union[CableTermination, _Mapping]] = ..., assigned_object_circuit: _Optional[_Union[Circuit, _Mapping]] = ..., assigned_object_circuit_group: _Optional[_Union[CircuitGroup, _Mapping]] = ..., assigned_object_circuit_group_assignment: _Optional[_Union[CircuitGroupAssignment, _Mapping]] = ..., assigned_object_circuit_termination: _Optional[_Union[CircuitTermination, _Mapping]] = ..., assigned_object_circuit_type: _Optional[_Union[CircuitType, _Mapping]] = ..., assigned_object_cluster: _Optional[_Union[Cluster, _Mapping]] = ..., assigned_object_cluster_group: _Optional[_Union[ClusterGroup, _Mapping]] = ..., assigned_object_cluster_type: _Optional[_Union[ClusterType, _Mapping]] = ..., assigned_object_console_port: _Optional[_Union[ConsolePort, _Mapping]] = ..., assigned_object_console_server_port: _Optional[_Union[ConsoleServerPort, _Mapping]] = ..., assigned_object_contact: _Optional[_Union[Contact, _Mapping]] = ..., assigned_object_contact_assignment: _Optional[_Union[ContactAssignment, _Mapping]] = ..., assigned_object_contact_group: _Optional[_Union[ContactGroup, _Mapping]] = ..., assigned_object_contact_role: _Optional[_Union[ContactRole, _Mapping]] = ..., assigned_object_custom_field: _Optional[_Union[CustomField, _Mapping]] = ..., assigned_object_custom_field_choice_set: _Optional[_Union[CustomFieldChoiceSet, _Mapping]] = ..., assigned_object_device: _Optional[_Union[Device, _Mapping]] = ..., assigned_object_device_bay: _Optional[_Union[DeviceBay, _Mapping]] = ..., assigned_object_device_role: _Optional[_Union[DeviceRole, _Mapping]] = ..., assigned_object_device_type: _Optional[_Union[DeviceType, _Mapping]] = ..., assigned_object_fhrp_group: _Optional[_Union[FHRPGroup, _Mapping]] = ..., assigned_object_fhrp_group_assignment: _Optional[_Union[FHRPGroupAssignment, _Mapping]] = ..., assigned_object_front_port: _Optional[_Union[FrontPort, _Mapping]] = ..., assigned_object_ike_policy: _Optional[_Union[IKEPolicy, _Mapping]] = ..., assigned_object_ike_proposal: _Optional[_Union[IKEProposal, _Mapping]] = ..., assigned_object_ip_address: _Optional[_Union[IPAddress, _Mapping]] = ..., assigned_object_ip_range: _Optional[_Union[IPRange, _Mapping]] = ..., assigned_object_ip_sec_policy: _Optional[_Union[IPSecPolicy, _Mapping]] = ..., assigned_object_ip_sec_profile: _Optional[_Union[IPSecProfile, _Mapping]] = ..., assigned_object_ip_sec_proposal: _Optional[_Union[IPSecProposal, _Mapping]] = ..., assigned_object_interface: _Optional[_Union[Interface, _Mapping]] = ..., assigned_object_inventory_item: _Optional[_Union[InventoryItem, _Mapping]] = ..., assigned_object_inventory_item_role: _Optional[_Union[InventoryItemRole, _Mapping]] = ..., assigned_object_journal_entry: _Optional[_Union[JournalEntry, _Mapping]] = ..., assigned_object_l2vpn: _Optional[_Union[L2VPN, _Mapping]] = ..., assigned_object_l2vpn_termination: _Optional[_Union[L2VPNTermination, _Mapping]] = ..., assigned_object_location: _Optional[_Union[Location, _Mapping]] = ..., assigned_object_mac_address: _Optional[_Union[MACAddress, _Mapping]] = ..., assigned_object_manufacturer: _Optional[_Union[Manufacturer, _Mapping]] = ..., assigned_object_module: _Optional[_Union[Module, _Mapping]] = ..., assigned_object_module_bay: _Optional[_Union[ModuleBay, _Mapping]] = ..., assigned_object_module_type: _Optional[_Union[ModuleType, _Mapping]] = ..., assigned_object_module_type_profile: _Optional[_Union[ModuleTypeProfile, _Mapping]] = ..., assigned_object_platform: _Optional[_Union[Platform, _Mapping]] = ..., assigned_object_power_feed: _Optional[_Union[PowerFeed, _Mapping]] = ..., assigned_object_power_outlet: _Optional[_Union[PowerOutlet, _Mapping]] = ..., assigned_object_power_panel: _Optional[_Union[PowerPanel, _Mapping]] = ..., assigned_object_power_port: _Optional[_Union[PowerPort, _Mapping]] = ..., assigned_object_prefix: _Optional[_Union[Prefix, _Mapping]] = ..., assigned_object_provider: _Optional[_Union[Provider, _Mapping]] = ..., assigned_object_provider_account: _Optional[_Union[ProviderAccount, _Mapping]] = ..., assigned_object_provider_network: _Optional[_Union[ProviderNetwork, _Mapping]] = ..., assigned_object_rir: _Optional[_Union[RIR, _Mapping]] = ..., assigned_object_rack: _Optional[_Union[Rack, _Mapping]] = ..., assigned_object_rack_reservation: _Optional[_Union[RackReservation, _Mapping]] = ..., assigned_object_rack_role: _Optional[_Union[RackRole, _Mapping]] = ..., assigned_object_rack_type: _Optional[_Union[RackType, _Mapping]] = ..., assigned_object_rear_port: _Optional[_Union[RearPort, _Mapping]] = ..., assigned_object_region: _Optional[_Union[Region, _Mapping]] = ..., assigned_object_role: _Optional[_Union[Role, _Mapping]] = ..., assigned_object_route_target: _Optional[_Union[RouteTarget, _Mapping]] = ..., assigned_object_service: _Optional[_Union[Service, _Mapping]] = ..., assigned_object_site: _Optional[_Union[Site, _Mapping]] = ..., assigned_object_site_group: _Optional[_Union[SiteGroup, _Mapping]] = ..., assigned_object_tag: _Optional[_Union[Tag, _Mapping]] = ..., assigned_object_tenant: _Optional[_Union[Tenant, _Mapping]] = ..., assigned_object_tenant_group: _Optional[_Union[TenantGroup, _Mapping]] = ..., assigned_object_tunnel: _Optional[_Union[Tunnel, _Mapping]] = ..., assigned_object_tunnel_group: _Optional[_Union[TunnelGroup, _Mapping]] = ..., assigned_object_tunnel_termination: _Optional[_Union[TunnelTermination, _Mapping]] = ..., assigned_object_vlan: _Optional[_Union[VLAN, _Mapping]] = ..., assigned_object_vlan_group: _Optional[_Union[VLANGroup, _Mapping]] = ..., assigned_object_vlan_translation_policy: _Optional[_Union[VLANTranslationPolicy, _Mapping]] = ..., assigned_object_vlan_translation_rule: _Optional[_Union[VLANTranslationRule, _Mapping]] = ..., assigned_object_vm_interface: _Optional[_Union[VMInterface, _Mapping]] = ..., assigned_object_vrf: _Optional[_Union[VRF, _Mapping]] = ..., assigned_object_virtual_chassis: _Optional[_Union[VirtualChassis, _Mapping]] = ..., assigned_object_virtual_circuit: _Optional[_Union[VirtualCircuit, _Mapping]] = ..., assigned_object_virtual_circuit_termination: _Optional[_Union[VirtualCircuitTermination, _Mapping]] = ..., assigned_object_virtual_circuit_type: _Optional[_Union[VirtualCircuitType, _Mapping]] = ..., assigned_object_virtual_device_context: _Optional[_Union[VirtualDeviceContext, _Mapping]] = ..., assigned_object_virtual_disk: _Optional[_Union[VirtualDisk, _Mapping]] = ..., assigned_object_virtual_machine: _Optional[_Union[VirtualMachine, _Mapping]] = ..., assigned_object_wireless_lan: _Optional[_Union[WirelessLAN, _Mapping]] = ..., assigned_object_wireless_lan_group: _Optional[_Union[WirelessLANGroup, _Mapping]] = ..., assigned_object_wireless_link: _Optional[_Union[WirelessLink, _Mapping]] = ..., assigned_object_custom_link: _Optional[_Union[CustomLink, _Mapping]] = ..., assigned_object_owner: _Optional[_Union[Owner, _Mapping]] = ..., assigned_object_owner_group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., assigned_object_cable_bundle: _Optional[_Union[CableBundle, _Mapping]] = ..., assigned_object_rack_group: _Optional[_Union[RackGroup, _Mapping]] = ..., assigned_object_script_module: _Optional[_Union[ScriptModule, _Mapping]] = ..., assigned_object_virtual_machine_type: _Optional[_Union[VirtualMachineType, _Mapping]] = ..., assigned_object_user: _Optional[_Union[User, _Mapping]] = ..., kind: _Optional[str] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., created_by: _Optional[_Union[User, _Mapping]] = ...) -> None: ... class ModuleTypeProfile(_message.Message): __slots__ = ("name", "description", "schema", "comments", "tags", "custom_fields", "metadata", "owner") @@ -4885,16 +4905,18 @@ class CustomLink(_message.Message): def __init__(self, name: _Optional[str] = ..., enabled: bool = ..., link_text: _Optional[str] = ..., link_url: _Optional[str] = ..., weight: _Optional[int] = ..., group_name: _Optional[str] = ..., button_class: _Optional[str] = ..., new_window: bool = ..., object_types: _Optional[_Iterable[str]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ...) -> None: ... class Owner(_message.Message): - __slots__ = ("name", "group", "description", "metadata") + __slots__ = ("name", "group", "description", "metadata", "users") NAME_FIELD_NUMBER: _ClassVar[int] GROUP_FIELD_NUMBER: _ClassVar[int] DESCRIPTION_FIELD_NUMBER: _ClassVar[int] METADATA_FIELD_NUMBER: _ClassVar[int] + USERS_FIELD_NUMBER: _ClassVar[int] name: str group: OwnerGroup description: str metadata: _struct_pb2.Struct - def __init__(self, name: _Optional[str] = ..., group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., description: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + users: _containers.RepeatedCompositeFieldContainer[User] + def __init__(self, name: _Optional[str] = ..., group: _Optional[_Union[OwnerGroup, _Mapping]] = ..., description: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ..., users: _Optional[_Iterable[_Union[User, _Mapping]]] = ...) -> None: ... class OwnerGroup(_message.Message): __slots__ = ("name", "description", "metadata") @@ -5010,3 +5032,11 @@ class VirtualMachineType(_message.Message): custom_fields: _containers.MessageMap[str, CustomFieldValue] metadata: _struct_pb2.Struct def __init__(self, name: _Optional[str] = ..., slug: _Optional[str] = ..., default_platform: _Optional[_Union[Platform, _Mapping]] = ..., default_vcpus: _Optional[float] = ..., default_memory: _Optional[int] = ..., description: _Optional[str] = ..., owner: _Optional[_Union[Owner, _Mapping]] = ..., comments: _Optional[str] = ..., tags: _Optional[_Iterable[_Union[Tag, _Mapping]]] = ..., custom_fields: _Optional[_Mapping[str, CustomFieldValue]] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... + +class User(_message.Message): + __slots__ = ("username", "metadata") + USERNAME_FIELD_NUMBER: _ClassVar[int] + METADATA_FIELD_NUMBER: _ClassVar[int] + username: str + metadata: _struct_pb2.Struct + def __init__(self, username: _Optional[str] = ..., metadata: _Optional[_Union[_struct_pb2.Struct, _Mapping]] = ...) -> None: ... diff --git a/netboxlabs/diode/sdk/ingester.py b/netboxlabs/diode/sdk/ingester.py index 85c4158..c37d7c0 100644 --- a/netboxlabs/diode/sdk/ingester.py +++ b/netboxlabs/diode/sdk/ingester.py @@ -3,7 +3,7 @@ # # Generated code. DO NOT EDIT. # Source: NetBox v4.6.0 -# Timestamp: 2026-05-14 20:30:14Z +# Timestamp: 2026-07-08 14:57:56Z # # ruff: noqa: C901 @@ -100,6 +100,7 @@ "CableBundle": "name", "RackGroup": "name", "VirtualMachineType": "name", + "User": "username", } @@ -288,6 +289,7 @@ def __new__( virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + user: str | User | pb.User | None = None, ) -> pb.Entity: """Create a new Entity.""" asn = convert_to_protobuf(asn, pb.ASN) @@ -422,6 +424,7 @@ def __new__( virtual_machine_type = convert_to_protobuf( virtual_machine_type, pb.VirtualMachineType ) + user = convert_to_protobuf(user, pb.User) if timestamp is None: ts = _timestamp_pb2.Timestamp() ts.GetCurrentTime() @@ -528,6 +531,7 @@ def __new__( rack_group=rack_group, script_module=script_module, virtual_machine_type=virtual_machine_type, + user=user, ) return result @@ -1399,6 +1403,7 @@ def __new__( object_virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + object_user: str | User | pb.User | None = None, contact: str | Contact | pb.Contact | None = None, role: str | ContactRole | pb.ContactRole | None = None, priority: str | None = None, @@ -1572,6 +1577,7 @@ def __new__( object_virtual_machine_type = convert_to_protobuf( object_virtual_machine_type, pb.VirtualMachineType ) + object_user = convert_to_protobuf(object_user, pb.User) contact = convert_to_protobuf(contact, pb.Contact) role = convert_to_protobuf(role, pb.ContactRole) tags = convert_to_protobuf_list(tags, pb.Tag) @@ -1677,6 +1683,7 @@ def __new__( object_rack_group=object_rack_group, object_script_module=object_script_module, object_virtual_machine_type=object_virtual_machine_type, + object_user=object_user, contact=contact, role=role, priority=priority, @@ -1882,6 +1889,7 @@ def __new__( virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + user: str | User | pb.User | None = None, ) -> pb.CustomFieldObjectReference: """Create a new CustomFieldObjectReference.""" asn = convert_to_protobuf(asn, pb.ASN) @@ -2015,6 +2023,7 @@ def __new__( virtual_machine_type = convert_to_protobuf( virtual_machine_type, pb.VirtualMachineType ) + user = convert_to_protobuf(user, pb.User) result = pb.CustomFieldObjectReference( asn=asn, asn_range=asn_range, @@ -2115,6 +2124,7 @@ def __new__( rack_group=rack_group, script_module=script_module, virtual_machine_type=virtual_machine_type, + user=user, ) return result @@ -2586,6 +2596,7 @@ def __new__( interface_virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + interface_user: str | User | pb.User | None = None, priority: int | None = None, metadata: dict[str, Any] | None = None, ) -> pb.FHRPGroupAssignment: @@ -2802,6 +2813,7 @@ def __new__( interface_virtual_machine_type = convert_to_protobuf( interface_virtual_machine_type, pb.VirtualMachineType ) + interface_user = convert_to_protobuf(interface_user, pb.User) metadata = convert_dict_to_struct(metadata) result = pb.FHRPGroupAssignment( group=group, @@ -2904,6 +2916,7 @@ def __new__( interface_rack_group=interface_rack_group, interface_script_module=interface_script_module, interface_virtual_machine_type=interface_virtual_machine_type, + interface_user=interface_user, priority=priority, metadata=metadata, ) @@ -3099,6 +3112,7 @@ def __new__( object_virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + object_user: str | User | pb.User | None = None, ) -> pb.GenericObject: """Create a new GenericObject.""" object_asn = convert_to_protobuf(object_asn, pb.ASN) @@ -3266,6 +3280,7 @@ def __new__( object_virtual_machine_type = convert_to_protobuf( object_virtual_machine_type, pb.VirtualMachineType ) + object_user = convert_to_protobuf(object_user, pb.User) result = pb.GenericObject( object_asn=object_asn, object_asn_range=object_asn_range, @@ -3366,6 +3381,7 @@ def __new__( object_rack_group=object_rack_group, object_script_module=object_script_module, object_virtual_machine_type=object_virtual_machine_type, + object_user=object_user, ) return result @@ -4178,6 +4194,7 @@ def __new__( assigned_object_virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + assigned_object_user: str | User | pb.User | None = None, tags: list[str | Tag | pb.Tag] | None = None, custom_fields: dict[str, CustomFieldValue | pb.CustomFieldValue] | None = None, metadata: dict[str, Any] | None = None, @@ -4447,6 +4464,7 @@ def __new__( assigned_object_virtual_machine_type = convert_to_protobuf( assigned_object_virtual_machine_type, pb.VirtualMachineType ) + assigned_object_user = convert_to_protobuf(assigned_object_user, pb.User) tags = convert_to_protobuf_list(tags, pb.Tag) custom_fields = convert_to_protobuf_dict(custom_fields, pb.CustomFieldValue) metadata = convert_dict_to_struct(metadata) @@ -4551,6 +4569,7 @@ def __new__( assigned_object_rack_group=assigned_object_rack_group, assigned_object_script_module=assigned_object_script_module, assigned_object_virtual_machine_type=assigned_object_virtual_machine_type, + assigned_object_user=assigned_object_user, tags=tags, custom_fields=custom_fields, metadata=metadata, @@ -5334,6 +5353,7 @@ def __new__( status: str | None = None, metadata: dict[str, Any] | None = None, owner: str | Owner | pb.Owner | None = None, + user: str | User | pb.User | None = None, ) -> pb.RackReservation: """Create a new RackReservation.""" rack = convert_to_protobuf(rack, pb.Rack) @@ -5342,6 +5362,7 @@ def __new__( custom_fields = convert_to_protobuf_dict(custom_fields, pb.CustomFieldValue) metadata = convert_dict_to_struct(metadata) owner = convert_to_protobuf(owner, pb.Owner) + user = convert_to_protobuf(user, pb.User) result = pb.RackReservation( rack=rack, units=units, @@ -5353,6 +5374,7 @@ def __new__( status=status, metadata=metadata, owner=owner, + user=user, ) return result @@ -6081,6 +6103,7 @@ def __new__( termination_virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + termination_user: str | User | pb.User | None = None, outside_ip: str | IPAddress | pb.IPAddress | None = None, tags: list[str | Tag | pb.Tag] | None = None, custom_fields: dict[str, CustomFieldValue | pb.CustomFieldValue] | None = None, @@ -6323,6 +6346,7 @@ def __new__( termination_virtual_machine_type = convert_to_protobuf( termination_virtual_machine_type, pb.VirtualMachineType ) + termination_user = convert_to_protobuf(termination_user, pb.User) outside_ip = convert_to_protobuf(outside_ip, pb.IPAddress) tags = convert_to_protobuf_list(tags, pb.Tag) custom_fields = convert_to_protobuf_dict(custom_fields, pb.CustomFieldValue) @@ -6429,6 +6453,7 @@ def __new__( termination_rack_group=termination_rack_group, termination_script_module=termination_script_module, termination_virtual_machine_type=termination_virtual_machine_type, + termination_user=termination_user, outside_ip=outside_ip, tags=tags, custom_fields=custom_fields, @@ -7420,11 +7445,13 @@ def __new__( assigned_object_virtual_machine_type: ( str | VirtualMachineType | pb.VirtualMachineType | None ) = None, + assigned_object_user: str | User | pb.User | None = None, kind: str | None = None, comments: str | None = None, tags: list[str | Tag | pb.Tag] | None = None, custom_fields: dict[str, CustomFieldValue | pb.CustomFieldValue] | None = None, metadata: dict[str, Any] | None = None, + created_by: str | User | pb.User | None = None, ) -> pb.JournalEntry: """Create a new JournalEntry.""" assigned_object_asn = convert_to_protobuf(assigned_object_asn, pb.ASN) @@ -7690,9 +7717,11 @@ def __new__( assigned_object_virtual_machine_type = convert_to_protobuf( assigned_object_virtual_machine_type, pb.VirtualMachineType ) + assigned_object_user = convert_to_protobuf(assigned_object_user, pb.User) tags = convert_to_protobuf_list(tags, pb.Tag) custom_fields = convert_to_protobuf_dict(custom_fields, pb.CustomFieldValue) metadata = convert_dict_to_struct(metadata) + created_by = convert_to_protobuf(created_by, pb.User) result = pb.JournalEntry( assigned_object_asn=assigned_object_asn, assigned_object_asn_range=assigned_object_asn_range, @@ -7793,11 +7822,13 @@ def __new__( assigned_object_rack_group=assigned_object_rack_group, assigned_object_script_module=assigned_object_script_module, assigned_object_virtual_machine_type=assigned_object_virtual_machine_type, + assigned_object_user=assigned_object_user, kind=kind, comments=comments, tags=tags, custom_fields=custom_fields, metadata=metadata, + created_by=created_by, ) return result @@ -7879,15 +7910,18 @@ def __new__( group: str | OwnerGroup | pb.OwnerGroup | None = None, description: str | None = None, metadata: dict[str, Any] | None = None, + users: list[str | User | pb.User] | None = None, ) -> pb.Owner: """Create a new Owner.""" group = convert_to_protobuf(group, pb.OwnerGroup) metadata = convert_dict_to_struct(metadata) + users = convert_to_protobuf_list(users, pb.User) result = pb.Owner( name=name, group=group, description=description, metadata=metadata, + users=users, ) return result @@ -8048,3 +8082,20 @@ def __new__( metadata=metadata, ) return result + + +class User: + """wrapper for netboxlabs.diode.sdk.diode.v1.ingester_pb2.User.""" + + def __new__( + cls, + username: str | None = None, + metadata: dict[str, Any] | None = None, + ) -> pb.User: + """Create a new User.""" + metadata = convert_dict_to_struct(metadata) + result = pb.User( + username=username, + metadata=metadata, + ) + return result diff --git a/netboxlabs/diode/sdk/py.typed b/netboxlabs/diode/sdk/py.typed new file mode 100644 index 0000000..e69de29 diff --git a/pyproject.toml b/pyproject.toml index 0379ba9..7d42b36 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,8 +27,8 @@ dependencies = [ "certifi>=2024.7.4", "grpcio>=1.68.1", "grpcio-status>=1.68.1", - "requests>=2.31.0", - "sentry-sdk>=2.2.1", + "requests>=2.33.0", + "sentry-sdk>=2.8.0", "opentelemetry-proto>=1.26.0", ] @@ -60,6 +60,9 @@ packages = [ "netboxlabs.diode.sdk.validate", ] +[tool.setuptools.package-data] +"netboxlabs.diode.sdk" = ["py.typed"] + [build-system] requires = ["setuptools>=43.0.0", "wheel"] build-backend = "setuptools.build_meta" diff --git a/tests/test_client.py b/tests/test_client.py index 622711c..a89457f 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -17,12 +17,15 @@ DiodeDryRunClient, DiodeMethodClientInterceptor, DiodeOTLPClient, + _auth_retry_delay, _ClientCallDetails, _diode_ingest_grpc_channel_options, _DiodeAuthentication, _get_sentry_dsn, + _is_retriable_auth_http_status, _load_certs, _otlp_grpc_channel_options, + _parse_retry_after, load_dryrun_entities, parse_target, ) @@ -662,6 +665,7 @@ def test_diode_authentication_url_with_path(mock_diode_authentication, path): target="localhost:8081", path=path, tls_verify=False, + secure=False, client_id="test_client_id", client_secret="test_client_secret", scope="diode:ingest", @@ -687,6 +691,75 @@ def test_diode_authentication_url_with_path(mock_diode_authentication, path): assert url == expected_url +@pytest.mark.parametrize( + ("secure", "tls_verify", "skip_tls_env", "expected_scheme"), + [ + # (scheme secure?, verify certs?, DIODE_SKIP_TLS_VERIFY, expected auth scheme) + (False, False, None, "http"), # grpc:// + # grpc:// + skip must stay HTTP (the #101 fix), not flip to HTTPS. + (False, False, "true", "http"), + (True, True, None, "https"), # grpcs:// + # grpcs:// + skip is preserved: HTTPS with cert verification disabled. + (True, False, "true", "https"), + # Independence guards: the scheme follows `secure`, never `tls_verify`. + # A scheme = self._tls_verify regression would fail both of these. + (True, False, None, "https"), + (False, True, None, "http"), + ], +) +def test_auth_url_scheme_follows_target( + mock_diode_authentication, monkeypatch, secure, tls_verify, skip_tls_env, expected_scheme +): + """Auth endpoint scheme follows the target scheme, independent of tls_verify/env.""" + if skip_tls_env is None: + monkeypatch.delenv("DIODE_SKIP_TLS_VERIFY", raising=False) + else: + monkeypatch.setenv("DIODE_SKIP_TLS_VERIFY", skip_tls_env) + + auth = _DiodeAuthentication( + target="host:8080", + path="", + tls_verify=tls_verify, + client_id="test_client_id", + client_secret="test_client_secret", + scope="diode:ingest", + sdk_name="diode-sdk-python", + sdk_version="0.1.0", + app_name="test-app", + app_version="1.0.0", + secure=secure, + ) + + assert auth._get_full_auth_url() == f"{expected_scheme}://host:8080/auth/token" + + +@pytest.mark.parametrize( + ("target", "expected_secure"), + [ + ("grpc://localhost:8081", False), + ("http://localhost:8081", False), + ("grpcs://localhost:8081", True), + ("https://localhost:8081", True), + ], +) +def test_client_secure_flag_follows_target_scheme( + mock_diode_authentication, monkeypatch, target, expected_secure +): + """DiodeClient._secure reflects the target scheme even with DIODE_SKIP_TLS_VERIFY set.""" + monkeypatch.setenv("DIODE_SKIP_TLS_VERIFY", "true") + client = DiodeClient( + target=target, + app_name="my-producer", + app_version="0.0.1", + client_id="abcde", + client_secret="123456", + ) + assert client._secure is expected_secure + # tls_verify is driven off skip-verify and is False here regardless of scheme, + # which is exactly why it cannot be reused to pick the auth scheme. + assert client.tls_verify is False + + def test_diode_authentication_request_exception(mock_diode_authentication): """Test that an exception during the request raises a DiodeConfigError.""" auth = _DiodeAuthentication( @@ -712,6 +785,163 @@ def test_diode_authentication_request_exception(mock_diode_authentication): assert "Failed to obtain access token: Connection error" in str(excinfo.value) +@pytest.mark.parametrize( + ("status_code", "expected"), + [ + (429, True), + (500, True), + (502, True), + (503, True), + (401, False), + (403, False), + (400, False), + (200, False), + ], +) +def test_is_retriable_auth_http_status(status_code, expected): + """Check retriable auth HTTP status classification.""" + assert _is_retriable_auth_http_status(status_code) is expected + + +def test_parse_retry_after_seconds(): + """Parse Retry-After header values in seconds.""" + assert _parse_retry_after("5") == 5.0 + + +def test_parse_retry_after_invalid(): + """Return None for invalid Retry-After values.""" + assert _parse_retry_after("not-a-date") is None + assert _parse_retry_after("") is None + + +def test_auth_retry_delay_exponential(): + """Apply exponential backoff when Retry-After is absent.""" + delay1 = _auth_retry_delay(1, 500, None, 1.0, 30.0) + delay2 = _auth_retry_delay(2, 500, None, 1.0, 30.0) + delay3 = _auth_retry_delay(3, 502, None, 1.0, 30.0) + assert 1.0 <= delay1 <= 1.25 + assert 2.0 <= delay2 <= 2.5 + assert 4.0 <= delay3 <= 5.0 + + +def test_auth_retry_delay_honours_retry_after(): + """Honour Retry-After for 429 and 503 responses.""" + delay429 = _auth_retry_delay(1, 429, "7", 1.0, 30.0) + delay503 = _auth_retry_delay(1, 503, "12", 1.0, 30.0) + assert 7.0 <= delay429 <= 8.75 + assert 12.0 <= delay503 <= 15.0 + + +def test_auth_retry_delay_caps_retry_after(): + """Cap Retry-After delays at the configured maximum.""" + delay = _auth_retry_delay(1, 429, "120", 1.0, 30.0) + assert delay == 30.0 + + +def test_auth_retry_delay_never_exceeds_max(): + """Jitter must not push the final delay above the configured maximum.""" + for attempt in range(1, 8): + delay = _auth_retry_delay(attempt, 500, None, 1.0, 30.0) + assert delay <= 30.0 + + +def test_diode_authentication_retries_retriable_status(mock_diode_authentication): + """Retry auth token fetch on transient HTTP failures.""" + auth = _DiodeAuthentication( + target="localhost:8081", + path="/diode", + tls_verify=False, + client_id="test_client_id", + client_secret="test_client_secret", + scope="diode:ingest", + sdk_name="diode-sdk-python", + sdk_version="0.1.0", + app_name="test-app", + app_version="1.0.0", + max_retries=3, + initial_retry_delay=0, + max_retry_delay=0, + sleep=lambda _delay: None, + ) + responses = [ + mock.Mock( + status_code=503, + reason="Service Unavailable", + headers={"Retry-After": "0"}, + ), + mock.Mock( + status_code=200, + json=mock.Mock(return_value={"access_token": "mocked_token"}), + ), + ] + with mock.patch("requests.Session") as mock_session_class: + mock_session = mock_session_class.return_value + mock_session.post.side_effect = responses + + token = auth.authenticate() + assert token == "mocked_token" + assert mock_session.post.call_count == 2 + + +def test_diode_authentication_fails_fast_on_401(mock_diode_authentication): + """Do not retry auth token fetch on 401 responses.""" + auth = _DiodeAuthentication( + target="localhost:8081", + path="/diode", + tls_verify=False, + client_id="test_client_id", + client_secret="test_client_secret", + scope="diode:ingest", + sdk_name="diode-sdk-python", + sdk_version="0.1.0", + app_name="test-app", + app_version="1.0.0", + max_retries=3, + initial_retry_delay=0, + max_retry_delay=0, + sleep=lambda _delay: None, + ) + with mock.patch("requests.Session") as mock_session_class: + mock_session = mock_session_class.return_value + mock_session.post.return_value = mock.Mock(status_code=401, reason="Unauthorized") + + with pytest.raises(DiodeConfigError) as excinfo: + auth.authenticate() + assert "Failed to obtain access token: Unauthorized" in str(excinfo.value) + assert mock_session.post.call_count == 1 + + +def test_diode_authentication_exhausts_retries(mock_diode_authentication): + """Raise after exhausting auth retry attempts.""" + auth = _DiodeAuthentication( + target="localhost:8081", + path="/diode", + tls_verify=False, + client_id="test_client_id", + client_secret="test_client_secret", + scope="diode:ingest", + sdk_name="diode-sdk-python", + sdk_version="0.1.0", + app_name="test-app", + app_version="1.0.0", + max_retries=2, + initial_retry_delay=0, + max_retry_delay=0, + sleep=lambda _delay: None, + ) + with mock.patch("requests.Session") as mock_session_class: + mock_session = mock_session_class.return_value + mock_session.post.return_value = mock.Mock( + status_code=503, + reason="Service Unavailable", + ) + + with pytest.raises(DiodeConfigError) as excinfo: + auth.authenticate() + assert "Failed to obtain access token: Service Unavailable" in str(excinfo.value) + assert mock_session.post.call_count == 2 + + def test_ingest_dry_run_stdout(capsys): """Verify ingest prints JSON when dry run is enabled.""" client = DiodeDryRunClient()