From 96ca6e3f2621f99e7339c09f97724a9fecf76b09 Mon Sep 17 00:00:00 2001 From: Tim Hogarty Date: Mon, 21 Oct 2024 17:03:10 -0700 Subject: [PATCH] Code generation for new mappings on fabric route filter resources and data sources with make provider --- ...fabric_connection_route_filter.examples.md | 50 +- ...uinix_fabric_route_filter_rule.examples.md | 58 +- .../connection_route_filter/Pulumi.yaml | 2 +- .../connection_route_filter/csharp/Program.cs | 8 + ...inix-fabric-connection_route_filter.csproj | 1 + .../fabric/connection_route_filter/go/go.mod | 116 +- .../fabric/connection_route_filter/go/main.go | 11 +- .../connection_route_filter/java/pom.xml | 6 +- .../src/main/java/generated_program/App.java | 8 + .../python/__main__.py | 15 +- .../python/requirements.txt | 1 + .../typescript/index.ts | 6 + .../typescript/package.json | 3 +- examples/fabric/route_filter_rule/Pulumi.yaml | 2 +- .../route_filter_rule/csharp/Program.cs | 10 + .../equinix-fabric-route_filter_rule.csproj | 1 + examples/fabric/route_filter_rule/go/go.mod | 116 +- examples/fabric/route_filter_rule/go/main.go | 13 +- .../fabric/route_filter_rule/java/pom.xml | 6 +- .../src/main/java/generated_program/App.java | 10 + .../route_filter_rule/python/__main__.py | 15 +- .../route_filter_rule/python/requirements.txt | 1 + .../route_filter_rule/typescript/index.ts | 8 + .../route_filter_rule/typescript/package.json | 3 +- .../csharp/equinix-metal-bgp_session.csproj | 2 +- .../csharp/equinix-metal-ssh_key.csproj | 2 +- .../equinix-network-device-example_8.csproj | 2 +- go.work.sum | 12 + .../bridge-metadata.json | 9 + .../cmd/pulumi-resource-equinix/schema.json | 9392 ++++++++++------- 30 files changed, 6010 insertions(+), 3879 deletions(-) diff --git a/docs/resource/equinix_fabric_connection_route_filter.examples.md b/docs/resource/equinix_fabric_connection_route_filter.examples.md index a58e722a8..7a2b124a5 100644 --- a/docs/resource/equinix_fabric_connection_route_filter.examples.md +++ b/docs/resource/equinix_fabric_connection_route_filter.examples.md @@ -2,7 +2,13 @@ {{% example %}} ```typescript import * as pulumi from "@pulumi/pulumi"; +import * as equinix from "@equinix-labs/pulumi-equinix"; +const policyAttachment = new equinix.fabric.ConnectionRouteFilter("policyAttachment", { + connectionId: "", + routeFilterId: "", + direction: "INBOUND", +}); export const connectionRouteFilterId = policyAttachment.id; export const connectionRouteFilterConnectionId = policyAttachment.connectionId; export const connectionRouteFilterDirection = policyAttachment.direction; @@ -11,23 +17,37 @@ export const connectionRouteFilterAttachmentStatus = policyAttachment.attachment ``` ```python import pulumi +import pulumi_equinix as equinix -pulumi.export("connectionRouteFilterId", policy_attachment["id"]) -pulumi.export("connectionRouteFilterConnectionId", policy_attachment["connectionId"]) -pulumi.export("connectionRouteFilterDirection", policy_attachment["direction"]) -pulumi.export("connectionRouteFilterType", policy_attachment["type"]) -pulumi.export("connectionRouteFilterAttachmentStatus", policy_attachment["attachmentStatus"]) +policy_attachment = equinix.fabric.ConnectionRouteFilter("policyAttachment", + connection_id="", + route_filter_id="", + direction="INBOUND") +pulumi.export("connectionRouteFilterId", policy_attachment.id) +pulumi.export("connectionRouteFilterConnectionId", policy_attachment.connection_id) +pulumi.export("connectionRouteFilterDirection", policy_attachment.direction) +pulumi.export("connectionRouteFilterType", policy_attachment.type) +pulumi.export("connectionRouteFilterAttachmentStatus", policy_attachment.attachment_status) ``` ```go package main import ( + "github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { - ctx.Export("connectionRouteFilterId", policyAttachment.Id) + policyAttachment, err := fabric.NewConnectionRouteFilter(ctx, "policyAttachment", &fabric.ConnectionRouteFilterArgs{ + ConnectionId: pulumi.String(""), + RouteFilterId: pulumi.String(""), + Direction: pulumi.String("INBOUND"), + }) + if err != nil { + return err + } + ctx.Export("connectionRouteFilterId", policyAttachment.ID()) ctx.Export("connectionRouteFilterConnectionId", policyAttachment.ConnectionId) ctx.Export("connectionRouteFilterDirection", policyAttachment.Direction) ctx.Export("connectionRouteFilterType", policyAttachment.Type) @@ -40,9 +60,17 @@ func main() { using System.Collections.Generic; using System.Linq; using Pulumi; +using Equinix = Pulumi.Equinix; return await Deployment.RunAsync(() => { + var policyAttachment = new Equinix.Fabric.ConnectionRouteFilter("policyAttachment", new() + { + ConnectionId = "", + RouteFilterId = "", + Direction = "INBOUND", + }); + return new Dictionary { ["connectionRouteFilterId"] = policyAttachment.Id, @@ -59,6 +87,8 @@ package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; +import com.pulumi.equinix.fabric.ConnectionRouteFilter; +import com.pulumi.equinix.fabric.ConnectionRouteFilterArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; @@ -72,6 +102,12 @@ public class App { } public static void stack(Context ctx) { + var policyAttachment = new ConnectionRouteFilter("policyAttachment", ConnectionRouteFilterArgs.builder() + .connectionId("") + .routeFilterId("") + .direction("INBOUND") + .build()); + ctx.export("connectionRouteFilterId", policyAttachment.id()); ctx.export("connectionRouteFilterConnectionId", policyAttachment.connectionId()); ctx.export("connectionRouteFilterDirection", policyAttachment.direction()); @@ -83,7 +119,7 @@ public class App { ```yaml resources: policyAttachment: - type: equinix:fabricConnectionRouteFilter + type: equinix:fabric:ConnectionRouteFilter name: policy_attachment properties: connectionId: diff --git a/docs/resource/equinix_fabric_route_filter_rule.examples.md b/docs/resource/equinix_fabric_route_filter_rule.examples.md index 92162f759..a845f46b2 100644 --- a/docs/resource/equinix_fabric_route_filter_rule.examples.md +++ b/docs/resource/equinix_fabric_route_filter_rule.examples.md @@ -2,7 +2,15 @@ {{% example %}} ```typescript import * as pulumi from "@pulumi/pulumi"; +import * as equinix from "@equinix-labs/pulumi-equinix"; +const rfRule = new equinix.fabric.RouteFilterRule("rfRule", { + routeFilterId: "", + name: "Route Filter Rule Name", + prefix: "192.168.0.0/24", + prefixMatch: "exact", + description: "Route Filter Rule for X Purpose", +}); export const routeFilterRuleId = rfRule.id; export const routeFilterId = rfRule.routeFilterId; export const routeFilterRulePrefix = rfRule.prefix; @@ -10,22 +18,40 @@ export const routeFilterRulePrefixMatch = rfRule.prefixMatch; ``` ```python import pulumi +import pulumi_equinix as equinix -pulumi.export("routeFilterRuleId", rf_rule["id"]) -pulumi.export("routeFilterId", rf_rule["routeFilterId"]) -pulumi.export("routeFilterRulePrefix", rf_rule["prefix"]) -pulumi.export("routeFilterRulePrefixMatch", rf_rule["prefixMatch"]) +rf_rule = equinix.fabric.RouteFilterRule("rfRule", + route_filter_id="", + name="Route Filter Rule Name", + prefix="192.168.0.0/24", + prefix_match="exact", + description="Route Filter Rule for X Purpose") +pulumi.export("routeFilterRuleId", rf_rule.id) +pulumi.export("routeFilterId", rf_rule.route_filter_id) +pulumi.export("routeFilterRulePrefix", rf_rule.prefix) +pulumi.export("routeFilterRulePrefixMatch", rf_rule.prefix_match) ``` ```go package main import ( + "github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { - ctx.Export("routeFilterRuleId", rfRule.Id) + rfRule, err := fabric.NewRouteFilterRule(ctx, "rfRule", &fabric.RouteFilterRuleArgs{ + RouteFilterId: pulumi.String(""), + Name: pulumi.String("Route Filter Rule Name"), + Prefix: pulumi.String("192.168.0.0/24"), + PrefixMatch: pulumi.String("exact"), + Description: pulumi.String("Route Filter Rule for X Purpose"), + }) + if err != nil { + return err + } + ctx.Export("routeFilterRuleId", rfRule.ID()) ctx.Export("routeFilterId", rfRule.RouteFilterId) ctx.Export("routeFilterRulePrefix", rfRule.Prefix) ctx.Export("routeFilterRulePrefixMatch", rfRule.PrefixMatch) @@ -37,9 +63,19 @@ func main() { using System.Collections.Generic; using System.Linq; using Pulumi; +using Equinix = Pulumi.Equinix; return await Deployment.RunAsync(() => { + var rfRule = new Equinix.Fabric.RouteFilterRule("rfRule", new() + { + RouteFilterId = "", + Name = "Route Filter Rule Name", + Prefix = "192.168.0.0/24", + PrefixMatch = "exact", + Description = "Route Filter Rule for X Purpose", + }); + return new Dictionary { ["routeFilterRuleId"] = rfRule.Id, @@ -55,6 +91,8 @@ package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; +import com.pulumi.equinix.fabric.RouteFilterRule; +import com.pulumi.equinix.fabric.RouteFilterRuleArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; @@ -68,6 +106,14 @@ public class App { } public static void stack(Context ctx) { + var rfRule = new RouteFilterRule("rfRule", RouteFilterRuleArgs.builder() + .routeFilterId("") + .name("Route Filter Rule Name") + .prefix("192.168.0.0/24") + .prefixMatch("exact") + .description("Route Filter Rule for X Purpose") + .build()); + ctx.export("routeFilterRuleId", rfRule.id()); ctx.export("routeFilterId", rfRule.routeFilterId()); ctx.export("routeFilterRulePrefix", rfRule.prefix()); @@ -78,7 +124,7 @@ public class App { ```yaml resources: rfRule: - type: equinix:fabricRouteFilterRule + type: equinix:fabric:RouteFilterRule name: rf_rule properties: routeFilterId: diff --git a/examples/fabric/connection_route_filter/Pulumi.yaml b/examples/fabric/connection_route_filter/Pulumi.yaml index ccd0320e9..826666ace 100644 --- a/examples/fabric/connection_route_filter/Pulumi.yaml +++ b/examples/fabric/connection_route_filter/Pulumi.yaml @@ -3,7 +3,7 @@ name: equinix-fabric-connection_route_filter runtime: yaml resources: policyAttachment: - type: equinix:fabricConnectionRouteFilter + type: equinix:fabric:ConnectionRouteFilter name: policy_attachment properties: connectionId: diff --git a/examples/fabric/connection_route_filter/csharp/Program.cs b/examples/fabric/connection_route_filter/csharp/Program.cs index c646042d0..2ceb9f57d 100644 --- a/examples/fabric/connection_route_filter/csharp/Program.cs +++ b/examples/fabric/connection_route_filter/csharp/Program.cs @@ -1,9 +1,17 @@ using System.Collections.Generic; using System.Linq; using Pulumi; +using Equinix = Pulumi.Equinix; return await Deployment.RunAsync(() => { + var policyAttachment = new Equinix.Fabric.ConnectionRouteFilter("policyAttachment", new() + { + ConnectionId = "", + RouteFilterId = "", + Direction = "INBOUND", + }); + return new Dictionary { ["connectionRouteFilterId"] = policyAttachment.Id, diff --git a/examples/fabric/connection_route_filter/csharp/equinix-fabric-connection_route_filter.csproj b/examples/fabric/connection_route_filter/csharp/equinix-fabric-connection_route_filter.csproj index aa5aca6d7..361821045 100644 --- a/examples/fabric/connection_route_filter/csharp/equinix-fabric-connection_route_filter.csproj +++ b/examples/fabric/connection_route_filter/csharp/equinix-fabric-connection_route_filter.csproj @@ -7,6 +7,7 @@ + \ No newline at end of file diff --git a/examples/fabric/connection_route_filter/go/go.mod b/examples/fabric/connection_route_filter/go/go.mod index 318b64823..fec827bba 100644 --- a/examples/fabric/connection_route_filter/go/go.mod +++ b/examples/fabric/connection_route_filter/go/go.mod @@ -1,55 +1,93 @@ module equinix-fabric-connection_route_filter -go 1.20 +go 1.21 -require github.com/pulumi/pulumi/sdk/v3 v3.30.0 +toolchain go1.22.6 require ( + github.com/equinix/pulumi-equinix/sdk latest + github.com/pulumi/pulumi/sdk/v3 v3.133.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/BurntSushi/toml v1.2.1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect + github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect + github.com/agext/levenshtein v1.2.3 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/atotto/clipboard v0.1.4 // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/blang/semver v3.5.1+incompatible // indirect - github.com/cheggaaa/pb v1.0.18 // indirect - github.com/djherbis/times v1.2.0 // indirect - github.com/emirpasic/gods v1.12.0 // indirect - github.com/gofrs/uuid v3.3.0+incompatible // indirect + github.com/charmbracelet/bubbles v0.16.1 // indirect + github.com/charmbracelet/bubbletea v0.25.0 // indirect + github.com/charmbracelet/lipgloss v0.7.1 // indirect + github.com/cheggaaa/pb v1.0.29 // indirect + github.com/cloudflare/circl v1.3.7 // indirect + github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/djherbis/times v1.5.0 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect - github.com/golang/protobuf v1.4.2 // indirect + github.com/golang/glog v1.2.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/go-multierror v1.0.0 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/hcl/v2 v2.20.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.8 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect - github.com/opentracing/basictracer-go v1.0.0 // indirect - github.com/opentracing/opentracing-go v1.1.0 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/reflow v0.3.0 // indirect + github.com/muesli/termenv v0.15.2 // indirect + github.com/opentracing/basictracer-go v1.1.0 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pgavlin/fx v0.1.6 // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.8.1 // indirect - github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 // indirect - github.com/sergi/go-diff v1.1.0 // indirect - github.com/spf13/cobra v1.4.0 // indirect + github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect + github.com/pulumi/esc v0.9.1 // indirect + github.com/rivo/uniseg v0.4.4 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect + github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/skeema/knownhosts v1.2.2 // indirect + github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/src-d/gcfg v1.4.0 // indirect - github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6 // indirect - github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect - github.com/uber/jaeger-client-go v2.22.1+incompatible // indirect - github.com/uber/jaeger-lib v2.2.0+incompatible // indirect - github.com/xanzy/ssh-agent v0.2.1 // indirect - go.uber.org/atomic v1.6.0 // indirect - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect - golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/text v0.3.3 // indirect - google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482 // indirect - google.golang.org/grpc v1.29.1 // indirect - google.golang.org/protobuf v1.24.0 // indirect - gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect - gopkg.in/src-d/go-git.v4 v4.13.1 // indirect + github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect + github.com/uber/jaeger-lib v2.4.1+incompatible // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + github.com/zclconf/go-cty v1.14.4 // indirect + go.uber.org/atomic v1.11.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/grpc v1.63.2 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/frand v1.4.2 // indirect ) diff --git a/examples/fabric/connection_route_filter/go/main.go b/examples/fabric/connection_route_filter/go/main.go index a971ac0f9..08036ff54 100644 --- a/examples/fabric/connection_route_filter/go/main.go +++ b/examples/fabric/connection_route_filter/go/main.go @@ -1,12 +1,21 @@ package main import ( + "github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { - ctx.Export("connectionRouteFilterId", policyAttachment.Id) + policyAttachment, err := fabric.NewConnectionRouteFilter(ctx, "policyAttachment", &fabric.ConnectionRouteFilterArgs{ + ConnectionId: pulumi.String(""), + RouteFilterId: pulumi.String(""), + Direction: pulumi.String("INBOUND"), + }) + if err != nil { + return err + } + ctx.Export("connectionRouteFilterId", policyAttachment.ID()) ctx.Export("connectionRouteFilterConnectionId", policyAttachment.ConnectionId) ctx.Export("connectionRouteFilterDirection", policyAttachment.Direction) ctx.Export("connectionRouteFilterType", policyAttachment.Type) diff --git a/examples/fabric/connection_route_filter/java/pom.xml b/examples/fabric/connection_route_filter/java/pom.xml index 7980f6852..9571de127 100644 --- a/examples/fabric/connection_route_filter/java/pom.xml +++ b/examples/fabric/connection_route_filter/java/pom.xml @@ -23,7 +23,11 @@ pulumi (,1.0] - + + com.pulumi + equinix + (,1.0) + diff --git a/examples/fabric/connection_route_filter/java/src/main/java/generated_program/App.java b/examples/fabric/connection_route_filter/java/src/main/java/generated_program/App.java index 54501c8d9..4f1092be5 100644 --- a/examples/fabric/connection_route_filter/java/src/main/java/generated_program/App.java +++ b/examples/fabric/connection_route_filter/java/src/main/java/generated_program/App.java @@ -3,6 +3,8 @@ import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; +import com.pulumi.equinix.fabric.ConnectionRouteFilter; +import com.pulumi.equinix.fabric.ConnectionRouteFilterArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; @@ -16,6 +18,12 @@ public static void main(String[] args) { } public static void stack(Context ctx) { + var policyAttachment = new ConnectionRouteFilter("policyAttachment", ConnectionRouteFilterArgs.builder() + .connectionId("") + .routeFilterId("") + .direction("INBOUND") + .build()); + ctx.export("connectionRouteFilterId", policyAttachment.id()); ctx.export("connectionRouteFilterConnectionId", policyAttachment.connectionId()); ctx.export("connectionRouteFilterDirection", policyAttachment.direction()); diff --git a/examples/fabric/connection_route_filter/python/__main__.py b/examples/fabric/connection_route_filter/python/__main__.py index d284e3916..8939a4790 100644 --- a/examples/fabric/connection_route_filter/python/__main__.py +++ b/examples/fabric/connection_route_filter/python/__main__.py @@ -1,7 +1,12 @@ import pulumi +import pulumi_equinix as equinix -pulumi.export("connectionRouteFilterId", policy_attachment["id"]) -pulumi.export("connectionRouteFilterConnectionId", policy_attachment["connectionId"]) -pulumi.export("connectionRouteFilterDirection", policy_attachment["direction"]) -pulumi.export("connectionRouteFilterType", policy_attachment["type"]) -pulumi.export("connectionRouteFilterAttachmentStatus", policy_attachment["attachmentStatus"]) +policy_attachment = equinix.fabric.ConnectionRouteFilter("policyAttachment", + connection_id="", + route_filter_id="", + direction="INBOUND") +pulumi.export("connectionRouteFilterId", policy_attachment.id) +pulumi.export("connectionRouteFilterConnectionId", policy_attachment.connection_id) +pulumi.export("connectionRouteFilterDirection", policy_attachment.direction) +pulumi.export("connectionRouteFilterType", policy_attachment.type) +pulumi.export("connectionRouteFilterAttachmentStatus", policy_attachment.attachment_status) diff --git a/examples/fabric/connection_route_filter/python/requirements.txt b/examples/fabric/connection_route_filter/python/requirements.txt index bc4e43087..317d94a17 100644 --- a/examples/fabric/connection_route_filter/python/requirements.txt +++ b/examples/fabric/connection_route_filter/python/requirements.txt @@ -1 +1,2 @@ pulumi>=3.0.0,<4.0.0 +pulumi_equinix==<1.0.0 diff --git a/examples/fabric/connection_route_filter/typescript/index.ts b/examples/fabric/connection_route_filter/typescript/index.ts index 042050f0a..3df35aeee 100644 --- a/examples/fabric/connection_route_filter/typescript/index.ts +++ b/examples/fabric/connection_route_filter/typescript/index.ts @@ -1,5 +1,11 @@ import * as pulumi from "@pulumi/pulumi"; +import * as equinix from "@equinix-labs/pulumi-equinix"; +const policyAttachment = new equinix.fabric.ConnectionRouteFilter("policyAttachment", { + connectionId: "", + routeFilterId: "", + direction: "INBOUND", +}); export const connectionRouteFilterId = policyAttachment.id; export const connectionRouteFilterConnectionId = policyAttachment.connectionId; export const connectionRouteFilterDirection = policyAttachment.direction; diff --git a/examples/fabric/connection_route_filter/typescript/package.json b/examples/fabric/connection_route_filter/typescript/package.json index e84085e64..06eaed94e 100644 --- a/examples/fabric/connection_route_filter/typescript/package.json +++ b/examples/fabric/connection_route_filter/typescript/package.json @@ -5,6 +5,7 @@ }, "dependencies": { "typescript": "^4.0.0", - "@pulumi/pulumi": "^3.0.0" + "@pulumi/pulumi": "^3.0.0", + "@equinix-labs/pulumi-equinix": "<1.0.0" } } \ No newline at end of file diff --git a/examples/fabric/route_filter_rule/Pulumi.yaml b/examples/fabric/route_filter_rule/Pulumi.yaml index e753fd52b..e9ee91ac5 100644 --- a/examples/fabric/route_filter_rule/Pulumi.yaml +++ b/examples/fabric/route_filter_rule/Pulumi.yaml @@ -3,7 +3,7 @@ name: equinix-fabric-route_filter_rule runtime: yaml resources: rfRule: - type: equinix:fabricRouteFilterRule + type: equinix:fabric:RouteFilterRule name: rf_rule properties: routeFilterId: diff --git a/examples/fabric/route_filter_rule/csharp/Program.cs b/examples/fabric/route_filter_rule/csharp/Program.cs index e68ffd5a4..164c520be 100644 --- a/examples/fabric/route_filter_rule/csharp/Program.cs +++ b/examples/fabric/route_filter_rule/csharp/Program.cs @@ -1,9 +1,19 @@ using System.Collections.Generic; using System.Linq; using Pulumi; +using Equinix = Pulumi.Equinix; return await Deployment.RunAsync(() => { + var rfRule = new Equinix.Fabric.RouteFilterRule("rfRule", new() + { + RouteFilterId = "", + Name = "Route Filter Rule Name", + Prefix = "192.168.0.0/24", + PrefixMatch = "exact", + Description = "Route Filter Rule for X Purpose", + }); + return new Dictionary { ["routeFilterRuleId"] = rfRule.Id, diff --git a/examples/fabric/route_filter_rule/csharp/equinix-fabric-route_filter_rule.csproj b/examples/fabric/route_filter_rule/csharp/equinix-fabric-route_filter_rule.csproj index aa5aca6d7..361821045 100644 --- a/examples/fabric/route_filter_rule/csharp/equinix-fabric-route_filter_rule.csproj +++ b/examples/fabric/route_filter_rule/csharp/equinix-fabric-route_filter_rule.csproj @@ -7,6 +7,7 @@ + \ No newline at end of file diff --git a/examples/fabric/route_filter_rule/go/go.mod b/examples/fabric/route_filter_rule/go/go.mod index 4b06a284d..21bc165ca 100644 --- a/examples/fabric/route_filter_rule/go/go.mod +++ b/examples/fabric/route_filter_rule/go/go.mod @@ -1,55 +1,93 @@ module equinix-fabric-route_filter_rule -go 1.20 +go 1.21 -require github.com/pulumi/pulumi/sdk/v3 v3.30.0 +toolchain go1.22.6 require ( + github.com/equinix/pulumi-equinix/sdk latest + github.com/pulumi/pulumi/sdk/v3 v3.133.0 +) + +require ( + dario.cat/mergo v1.0.0 // indirect + github.com/BurntSushi/toml v1.2.1 // indirect + github.com/Microsoft/go-winio v0.6.1 // indirect + github.com/ProtonMail/go-crypto v1.1.0-alpha.2 // indirect + github.com/aead/chacha20 v0.0.0-20180709150244-8b13a72661da // indirect + github.com/agext/levenshtein v1.2.3 // indirect + github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect + github.com/atotto/clipboard v0.1.4 // indirect + github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect github.com/blang/semver v3.5.1+incompatible // indirect - github.com/cheggaaa/pb v1.0.18 // indirect - github.com/djherbis/times v1.2.0 // indirect - github.com/emirpasic/gods v1.12.0 // indirect - github.com/gofrs/uuid v3.3.0+incompatible // indirect + github.com/charmbracelet/bubbles v0.16.1 // indirect + github.com/charmbracelet/bubbletea v0.25.0 // indirect + github.com/charmbracelet/lipgloss v0.7.1 // indirect + github.com/cheggaaa/pb v1.0.29 // indirect + github.com/cloudflare/circl v1.3.7 // indirect + github.com/containerd/console v1.0.4-0.20230313162750-1ae8d489ac81 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect + github.com/djherbis/times v1.5.0 // indirect + github.com/emirpasic/gods v1.18.1 // indirect + github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect + github.com/go-git/go-billy/v5 v5.5.0 // indirect + github.com/go-git/go-git/v5 v5.12.0 // indirect github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect - github.com/golang/protobuf v1.4.2 // indirect + github.com/golang/glog v1.2.0 // indirect + github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/google/uuid v1.6.0 // indirect github.com/grpc-ecosystem/grpc-opentracing v0.0.0-20180507213350-8e809c8a8645 // indirect - github.com/hashicorp/errwrap v1.0.0 // indirect - github.com/hashicorp/go-multierror v1.0.0 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/hcl/v2 v2.20.1 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/kevinburke/ssh_config v0.0.0-20190725054713-01f96b0aa0cd // indirect + github.com/kevinburke/ssh_config v1.2.0 // indirect + github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.8 // indirect - github.com/mitchellh/go-homedir v1.1.0 // indirect + github.com/mattn/go-localereader v0.0.1 // indirect + github.com/mattn/go-runewidth v0.0.15 // indirect github.com/mitchellh/go-ps v1.0.0 // indirect - github.com/opentracing/basictracer-go v1.0.0 // indirect - github.com/opentracing/opentracing-go v1.1.0 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/muesli/ansi v0.0.0-20230316100256-276c6243b2f6 // indirect + github.com/muesli/cancelreader v0.2.2 // indirect + github.com/muesli/reflow v0.3.0 // indirect + github.com/muesli/termenv v0.15.2 // indirect + github.com/opentracing/basictracer-go v1.1.0 // indirect + github.com/opentracing/opentracing-go v1.2.0 // indirect + github.com/pgavlin/fx v0.1.6 // indirect + github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pkg/term v1.1.0 // indirect - github.com/rivo/uniseg v0.2.0 // indirect - github.com/rogpeppe/go-internal v1.8.1 // indirect - github.com/sabhiram/go-gitignore v0.0.0-20180611051255-d3107576ba94 // indirect - github.com/sergi/go-diff v1.1.0 // indirect - github.com/spf13/cobra v1.4.0 // indirect + github.com/pulumi/appdash v0.0.0-20231130102222-75f619a67231 // indirect + github.com/pulumi/esc v0.9.1 // indirect + github.com/rivo/uniseg v0.4.4 // indirect + github.com/rogpeppe/go-internal v1.12.0 // indirect + github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 // indirect + github.com/santhosh-tekuri/jsonschema/v5 v5.0.0 // indirect + github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect + github.com/skeema/knownhosts v1.2.2 // indirect + github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect - github.com/src-d/gcfg v1.4.0 // indirect - github.com/texttheater/golang-levenshtein v0.0.0-20191208221605-eb6844b05fc6 // indirect - github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7 // indirect - github.com/uber/jaeger-client-go v2.22.1+incompatible // indirect - github.com/uber/jaeger-lib v2.2.0+incompatible // indirect - github.com/xanzy/ssh-agent v0.2.1 // indirect - go.uber.org/atomic v1.6.0 // indirect - golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 // indirect - golang.org/x/net v0.0.0-20201021035429-f5854403a974 // indirect - golang.org/x/sys v0.6.0 // indirect - golang.org/x/text v0.3.3 // indirect - google.golang.org/genproto v0.0.0-20200608115520-7c474a2e3482 // indirect - google.golang.org/grpc v1.29.1 // indirect - google.golang.org/protobuf v1.24.0 // indirect - gopkg.in/src-d/go-billy.v4 v4.3.2 // indirect - gopkg.in/src-d/go-git.v4 v4.13.1 // indirect + github.com/texttheater/golang-levenshtein v1.0.1 // indirect + github.com/uber/jaeger-client-go v2.30.0+incompatible // indirect + github.com/uber/jaeger-lib v2.4.1+incompatible // indirect + github.com/xanzy/ssh-agent v0.3.3 // indirect + github.com/zclconf/go-cty v1.14.4 // indirect + go.uber.org/atomic v1.11.0 // indirect + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/exp v0.0.0-20240604190554-fc45aab8b7f8 // indirect + golang.org/x/mod v0.18.0 // indirect + golang.org/x/net v0.26.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.21.0 // indirect + golang.org/x/term v0.21.0 // indirect + golang.org/x/text v0.16.0 // indirect + golang.org/x/tools v0.22.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240311173647-c811ad7063a7 // indirect + google.golang.org/grpc v1.63.2 // indirect + google.golang.org/protobuf v1.34.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - sourcegraph.com/sourcegraph/appdash v0.0.0-20190731080439-ebfcffb1b5c0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + lukechampine.com/frand v1.4.2 // indirect ) diff --git a/examples/fabric/route_filter_rule/go/main.go b/examples/fabric/route_filter_rule/go/main.go index 0c541eee5..3ea6de35e 100644 --- a/examples/fabric/route_filter_rule/go/main.go +++ b/examples/fabric/route_filter_rule/go/main.go @@ -1,12 +1,23 @@ package main import ( + "github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric" "github.com/pulumi/pulumi/sdk/v3/go/pulumi" ) func main() { pulumi.Run(func(ctx *pulumi.Context) error { - ctx.Export("routeFilterRuleId", rfRule.Id) + rfRule, err := fabric.NewRouteFilterRule(ctx, "rfRule", &fabric.RouteFilterRuleArgs{ + RouteFilterId: pulumi.String(""), + Name: pulumi.String("Route Filter Rule Name"), + Prefix: pulumi.String("192.168.0.0/24"), + PrefixMatch: pulumi.String("exact"), + Description: pulumi.String("Route Filter Rule for X Purpose"), + }) + if err != nil { + return err + } + ctx.Export("routeFilterRuleId", rfRule.ID()) ctx.Export("routeFilterId", rfRule.RouteFilterId) ctx.Export("routeFilterRulePrefix", rfRule.Prefix) ctx.Export("routeFilterRulePrefixMatch", rfRule.PrefixMatch) diff --git a/examples/fabric/route_filter_rule/java/pom.xml b/examples/fabric/route_filter_rule/java/pom.xml index 120c2a9ae..a6ca332b0 100644 --- a/examples/fabric/route_filter_rule/java/pom.xml +++ b/examples/fabric/route_filter_rule/java/pom.xml @@ -23,7 +23,11 @@ pulumi (,1.0] - + + com.pulumi + equinix + (,1.0) + diff --git a/examples/fabric/route_filter_rule/java/src/main/java/generated_program/App.java b/examples/fabric/route_filter_rule/java/src/main/java/generated_program/App.java index 6cf6f5963..f78673ef1 100644 --- a/examples/fabric/route_filter_rule/java/src/main/java/generated_program/App.java +++ b/examples/fabric/route_filter_rule/java/src/main/java/generated_program/App.java @@ -3,6 +3,8 @@ import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; +import com.pulumi.equinix.fabric.RouteFilterRule; +import com.pulumi.equinix.fabric.RouteFilterRuleArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; @@ -16,6 +18,14 @@ public static void main(String[] args) { } public static void stack(Context ctx) { + var rfRule = new RouteFilterRule("rfRule", RouteFilterRuleArgs.builder() + .routeFilterId("") + .name("Route Filter Rule Name") + .prefix("192.168.0.0/24") + .prefixMatch("exact") + .description("Route Filter Rule for X Purpose") + .build()); + ctx.export("routeFilterRuleId", rfRule.id()); ctx.export("routeFilterId", rfRule.routeFilterId()); ctx.export("routeFilterRulePrefix", rfRule.prefix()); diff --git a/examples/fabric/route_filter_rule/python/__main__.py b/examples/fabric/route_filter_rule/python/__main__.py index 60c207479..9a7352a69 100644 --- a/examples/fabric/route_filter_rule/python/__main__.py +++ b/examples/fabric/route_filter_rule/python/__main__.py @@ -1,6 +1,13 @@ import pulumi +import pulumi_equinix as equinix -pulumi.export("routeFilterRuleId", rf_rule["id"]) -pulumi.export("routeFilterId", rf_rule["routeFilterId"]) -pulumi.export("routeFilterRulePrefix", rf_rule["prefix"]) -pulumi.export("routeFilterRulePrefixMatch", rf_rule["prefixMatch"]) +rf_rule = equinix.fabric.RouteFilterRule("rfRule", + route_filter_id="", + name="Route Filter Rule Name", + prefix="192.168.0.0/24", + prefix_match="exact", + description="Route Filter Rule for X Purpose") +pulumi.export("routeFilterRuleId", rf_rule.id) +pulumi.export("routeFilterId", rf_rule.route_filter_id) +pulumi.export("routeFilterRulePrefix", rf_rule.prefix) +pulumi.export("routeFilterRulePrefixMatch", rf_rule.prefix_match) diff --git a/examples/fabric/route_filter_rule/python/requirements.txt b/examples/fabric/route_filter_rule/python/requirements.txt index bc4e43087..317d94a17 100644 --- a/examples/fabric/route_filter_rule/python/requirements.txt +++ b/examples/fabric/route_filter_rule/python/requirements.txt @@ -1 +1,2 @@ pulumi>=3.0.0,<4.0.0 +pulumi_equinix==<1.0.0 diff --git a/examples/fabric/route_filter_rule/typescript/index.ts b/examples/fabric/route_filter_rule/typescript/index.ts index 059dc2386..78abf1080 100644 --- a/examples/fabric/route_filter_rule/typescript/index.ts +++ b/examples/fabric/route_filter_rule/typescript/index.ts @@ -1,5 +1,13 @@ import * as pulumi from "@pulumi/pulumi"; +import * as equinix from "@equinix-labs/pulumi-equinix"; +const rfRule = new equinix.fabric.RouteFilterRule("rfRule", { + routeFilterId: "", + name: "Route Filter Rule Name", + prefix: "192.168.0.0/24", + prefixMatch: "exact", + description: "Route Filter Rule for X Purpose", +}); export const routeFilterRuleId = rfRule.id; export const routeFilterId = rfRule.routeFilterId; export const routeFilterRulePrefix = rfRule.prefix; diff --git a/examples/fabric/route_filter_rule/typescript/package.json b/examples/fabric/route_filter_rule/typescript/package.json index 6a09bee1f..de0163cdb 100644 --- a/examples/fabric/route_filter_rule/typescript/package.json +++ b/examples/fabric/route_filter_rule/typescript/package.json @@ -5,6 +5,7 @@ }, "dependencies": { "typescript": "^4.0.0", - "@pulumi/pulumi": "^3.0.0" + "@pulumi/pulumi": "^3.0.0", + "@equinix-labs/pulumi-equinix": "<1.0.0" } } \ No newline at end of file diff --git a/examples/metal/bgp_session/csharp/equinix-metal-bgp_session.csproj b/examples/metal/bgp_session/csharp/equinix-metal-bgp_session.csproj index c23bc1439..1f83fd531 100644 --- a/examples/metal/bgp_session/csharp/equinix-metal-bgp_session.csproj +++ b/examples/metal/bgp_session/csharp/equinix-metal-bgp_session.csproj @@ -7,8 +7,8 @@ - + \ No newline at end of file diff --git a/examples/metal/ssh_key/csharp/equinix-metal-ssh_key.csproj b/examples/metal/ssh_key/csharp/equinix-metal-ssh_key.csproj index d9bc35afd..9bd721565 100644 --- a/examples/metal/ssh_key/csharp/equinix-metal-ssh_key.csproj +++ b/examples/metal/ssh_key/csharp/equinix-metal-ssh_key.csproj @@ -7,8 +7,8 @@ - + \ No newline at end of file diff --git a/examples/network/device/example_8/csharp/equinix-network-device-example_8.csproj b/examples/network/device/example_8/csharp/equinix-network-device-example_8.csproj index d9bc35afd..9bd721565 100644 --- a/examples/network/device/example_8/csharp/equinix-network-device-example_8.csproj +++ b/examples/network/device/example_8/csharp/equinix-network-device-example_8.csproj @@ -7,8 +7,8 @@ - + \ No newline at end of file diff --git a/go.work.sum b/go.work.sum index 1b93486cb..812a098be 100644 --- a/go.work.sum +++ b/go.work.sum @@ -153,6 +153,7 @@ cloud.google.com/go/gkemulticloud v0.6.1 h1:vg81EW3GQ4RO4PT1MdNHE8aF87EiohZp/WwM cloud.google.com/go/gkemulticloud v1.1.0/go.mod h1:7NpJBN94U6DY1xHIbsDqB2+TFZUfjLUKLjUX8NGLor0= cloud.google.com/go/gkemulticloud v1.1.1/go.mod h1:C+a4vcHlWeEIf45IB5FFR5XGjTeYhF83+AYIpTy4i2Q= cloud.google.com/go/grafeas v0.3.0 h1:oyTL/KjiUeBs9eYLw/40cpSZglUC+0F7X4iu/8t7NWs= +cloud.google.com/go/grafeas v0.3.4/go.mod h1:A5m316hcG+AulafjAbPKXBO/+I5itU4LOdKO2R/uDIc= cloud.google.com/go/gsuiteaddons v1.6.1 h1:mi9jxZpzVjLQibTS/XfPZvl+Jr6D5Bs8pGqUjllRb00= cloud.google.com/go/gsuiteaddons v1.6.5/go.mod h1:Lo4P2IvO8uZ9W+RaC6s1JVxo42vgy+TX5a6hfBZ0ubs= cloud.google.com/go/iap v1.8.1 h1:X1tcp+EoJ/LGX6cUPt3W2D4H2Kbqq0pLAsldnsCjLlE= @@ -476,11 +477,13 @@ github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 h1:w1UutsfOrms1J05zt7I github.com/ajstarks/deck v0.0.0-20200831202436-30c9fc6549a9 h1:7kQgkwGRoLzC9K0oyXdJo7nve/bynv/KwUsxbiTlzAM= github.com/ajstarks/deck/generate v0.0.0-20210309230005-c3f852c02e19 h1:iXUgAaqDcIUGbRoy2TdeofRG/j1zpGRSEmNK05T+bi8= github.com/ajstarks/svgo v0.0.0-20211024235047-1546f124cd8b h1:slYM766cy2nI3BwyRiyQj/Ud48djTMtMebDqepE95rw= +github.com/alecthomas/assert/v2 v2.6.0/go.mod h1:Bze95FyfUr7x34QZrjL+XP+0qgp/zg8yS+TtBj1WA3k= github.com/alecthomas/chroma v0.10.0 h1:7XDcGkCQopCNKjZHfYrNLraA+M7e0fMiJ/Mfikbfjek= github.com/alecthomas/chroma v0.10.0/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s= github.com/alecthomas/chroma/v2 v2.13.0/go.mod h1:BUGjjsD+ndS6eX37YgTchSEG+Jg9Jv1GiZs9sqPqztk= github.com/alecthomas/kingpin/v2 v2.3.2/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= +github.com/alecthomas/repr v0.4.0/go.mod h1:Fr0507jx4eOXV7AlPV6AVZLYrLIuIeSOWtW57eE/O/4= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -498,6 +501,7 @@ github.com/apache/arrow/go/v10 v10.0.1 h1:n9dERvixoC/1JjDmBcs9FPaEryoANa2sCgVFo6 github.com/apache/arrow/go/v11 v11.0.0 h1:hqauxvFQxww+0mEU/2XHG6LT7eZternCZq+A5Yly2uM= github.com/apache/arrow/go/v12 v12.0.0 h1:xtZE63VWl7qLdB0JObIXvvhGjoVNrQ9ciIHG2OK5cmc= github.com/apache/arrow/go/v12 v12.0.1/go.mod h1:weuTY7JvTG/HDPtMQxEUp7pU73vkLWMLpY67QwZ/WWw= +github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.13.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apache/thrift v0.16.0 h1:qEy6UW60iVOlUy+b9ZR0d5WzUWYGOo4HfopoyBaNmoY= @@ -1155,6 +1159,7 @@ github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= github.com/gobwas/ws v1.2.1/go.mod h1:hRKAFb8wOxFROYNsT1bqfWnhX+b5MFeJM9r2ZSwg/KY= github.com/goccy/go-json v0.9.11 h1:/pAaQDLHEoCq/5FFmSKBswWmK6H0e8g4159Kc/X/nqk= +github.com/goccy/go-json v0.10.2/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.9.5 h1:Eh/+3uk9kLxG4koCX6lRMAPS1OaMSAi+FJcya0INdB0= github.com/goccy/go-yaml v1.9.5/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= @@ -1201,6 +1206,7 @@ github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= github.com/google/flatbuffers v2.0.8+incompatible h1:ivUb1cGomAB101ZM1T0nOiWz9pSrTMoa9+EiY7igmkM= +github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/gnostic v0.5.7-v3refs h1:FhTMOKj2VhjpouxvWJAV1TL304uMlb9zcDqkl6cEI54= github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= @@ -1386,6 +1392,7 @@ github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmK github.com/ianlancetaylor/demangle v0.0.0-20210905161508-09a460cdf81d/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2 h1:rcanfLhLDA8nozr/K289V1zcntHr3V+SHlXwzz1ZI2g= github.com/ianlancetaylor/demangle v0.0.0-20220319035150-800ac71e25c2/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= +github.com/ianlancetaylor/demangle v0.0.0-20220517205856-0058ec4f073c/go.mod h1:aYm2/VgdVmcIU8iMfdMvDMsRAQjcfZSKFby6HOFvi/w= github.com/ianlancetaylor/demangle v0.0.0-20230524184225-eabc099b10ab/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd h1:anPrsicrIi2ColgWTVPk+TrN42hJIWlfPHSBP9S0ZkM= github.com/ijc/Gotty v0.0.0-20170406111628-a8b993ba6abd/go.mod h1:3LVOLeyx9XVvwPgrt2be44XgSqndprz1G18rSk8KD84= @@ -1510,6 +1517,7 @@ github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47e github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid/v2 v2.0.9 h1:lgaqFMSdTdQYdZ04uHyN2d/eKdOMyi2YLSvlQIBFYa4= +github.com/klauspost/cpuid/v2 v2.2.5/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b h1:iNjcivnc6lhbvJA3LD622NPrUponluJrBWPIwGG/3Bg= github.com/kolo/xmlrpc v0.0.0-20201022064351-38db28db192b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= github.com/kolo/xmlrpc v0.0.0-20220921171641-a4b6fa1dd06b/go.mod h1:pcaDhQK0/NJZEvtCO0qQPPropqV0sJOJ6YW7X+9kRwM= @@ -1789,6 +1797,7 @@ github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4/v4 v4.1.15 h1:MO0/ucJhngq7299dKLwIMtgTfbkoSPF6AoMYDd8Q4q0= +github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/browser v0.0.0-20180916011732-0a3d74bf9ce4/go.mod h1:4OwLy04Bl9Ef3GJJCoec+30X3LQs/0/m4HFRt/2LUSA= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 h1:Qj1ukM4GlMWXNdMBuXcXfz/Kw9s1qm0CLY32QxuSImI= github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4/go.mod h1:N6UoU20jOqggOuDwUaBQpluzLNDqif3kq9z2wpdYEfQ= @@ -1833,6 +1842,7 @@ github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6T github.com/prometheus/client_model v0.3.0 h1:UBgGFHqYdG/TPFD1B1ogZywDqEkwp3fBMvqdiQ7Xew4= github.com/prometheus/client_model v0.4.1-0.20230718164431-9a2bf3000d16/go.mod h1:oMQmHW1/JoDwqLtg57MGgP/Fb1CJEYF2imWWhWtMkYU= github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -2046,6 +2056,7 @@ github.com/tmccombs/hcl2json v0.3.3/go.mod h1:Y2chtz2x9bAeRTvSibVRVgbLJhLJXKlUeI github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c h1:u6SKchux2yDvFQnDHS3lPnIRmfVJ5Sxy3ao2SIdysLQ= github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/tweekmonster/luser v0.0.0-20161003172636-3fa38070dbd7/go.mod h1:UxoP3EypF8JfGEjAII8jx1q8rQyDnX8qdTCs/UQBVIE= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= @@ -2109,6 +2120,7 @@ github.com/zeebo/xxh3 v1.0.2 h1:xZmwmqxHZA8AI603jOQ0tMqmBr9lPeFwGg6d+xy9DC0= github.com/zenazn/goji v0.9.0 h1:RSQQAbXGArQ0dIDEq+PI6WqN6if+5KHu6x2Cx/GXLTQ= github.com/zenazn/goji v0.9.0/go.mod h1:7S9M489iMyHBNxwZnk9/EHS098H4/F6TATF2mIxtB1Q= go.abhg.dev/goldmark/frontmatter v0.2.0/go.mod h1:XqrEkZuM57djk7zrlRUB02x8I5J0px76YjkOzhB4YlU= +go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= diff --git a/provider/cmd/pulumi-resource-equinix/bridge-metadata.json b/provider/cmd/pulumi-resource-equinix/bridge-metadata.json index c7b32e417..810e00560 100644 --- a/provider/cmd/pulumi-resource-equinix/bridge-metadata.json +++ b/provider/cmd/pulumi-resource-equinix/bridge-metadata.json @@ -3,7 +3,10 @@ "resources": { "equinix:fabric/cloudRouter:CloudRouter": 0, "equinix:fabric/connection:Connection": 0, + "equinix:fabric/connectionRouteFilter:ConnectionRouteFilter": 0, "equinix:fabric/network:Network": 0, + "equinix:fabric/routeFilter:RouteFilter": 0, + "equinix:fabric/routeFilterRule:RouteFilterRule": 0, "equinix:fabric/routingProtocol:RoutingProtocol": 0, "equinix:fabric/serviceProfile:ServiceProfile": 0, "equinix:metal/bgpSession:BgpSession": 0, @@ -38,12 +41,18 @@ "equinix:fabric/getCloudRouter:getCloudRouter": 0, "equinix:fabric/getCloudRouters:getCloudRouters": 0, "equinix:fabric/getConnection:getConnection": 0, + "equinix:fabric/getConnectionRouteFilter:getConnectionRouteFilter": 0, + "equinix:fabric/getConnectionRouteFilters:getConnectionRouteFilters": 0, "equinix:fabric/getConnections:getConnections": 0, "equinix:fabric/getMarketplaceSubscription:getMarketplaceSubscription": 0, "equinix:fabric/getNetwork:getNetwork": 0, "equinix:fabric/getNetworks:getNetworks": 0, "equinix:fabric/getPort:getPort": 0, "equinix:fabric/getPorts:getPorts": 0, + "equinix:fabric/getRouteFilter:getRouteFilter": 0, + "equinix:fabric/getRouteFilterRule:getRouteFilterRule": 0, + "equinix:fabric/getRouteFilterRules:getRouteFilterRules": 0, + "equinix:fabric/getRouteFilters:getRouteFilters": 0, "equinix:fabric/getRoutingProtocol:getRoutingProtocol": 0, "equinix:fabric/getServiceProfile:getServiceProfile": 0, "equinix:fabric/getServiceProfiles:getServiceProfiles": 0, diff --git a/provider/cmd/pulumi-resource-equinix/schema.json b/provider/cmd/pulumi-resource-equinix/schema.json index 4d74f312d..46919593e 100644 --- a/provider/cmd/pulumi-resource-equinix/schema.json +++ b/provider/cmd/pulumi-resource-equinix/schema.json @@ -1917,6 +1917,224 @@ "projectId" ] }, + "equinix:fabric/RouteFilterChange:RouteFilterChange": { + "properties": { + "href": { + "type": "string", + "description": "The URI of the previous Route Filter Change\n" + }, + "type": { + "type": "string", + "description": "Type of change. One of [ \"BGP_IPv4_PREFIX_FILTER_UPDATE\",\"BGP_IPv4_PREFIX_FILTER_CREATION\",\"BGP_IPv4_PREFIX_FILTER_DELETION\",\"BGP_IPv6_PREFIX_FILTER_UPDATE\",\"BGP_IPv6_PREFIX_FILTER_CREATION\",\"BGP_IPv6_PREFIX_FILTER_DELETION\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Unique identifier for the previous change\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "href", + "type", + "uuid" + ] + } + } + }, + "equinix:fabric/RouteFilterChangeLog:RouteFilterChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "Created by User Key\n" + }, + "createdByEmail": { + "type": "string", + "description": "Created by User Email Address\n" + }, + "createdByFullName": { + "type": "string", + "description": "Created by User Full Name\n" + }, + "createdDateTime": { + "type": "string", + "description": "Created by Date and Time\n" + }, + "deletedBy": { + "type": "string", + "description": "Deleted by User Key\n" + }, + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address\n" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name\n" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time\n" + }, + "updatedBy": { + "type": "string", + "description": "Updated by User Key\n" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address\n" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name\n" + }, + "updatedDateTime": { + "type": "string", + "description": "Updated by Date and Time\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "createdBy", + "createdByEmail", + "createdByFullName", + "createdDateTime", + "deletedBy", + "deletedByEmail", + "deletedByFullName", + "deletedDateTime", + "updatedBy", + "updatedByEmail", + "updatedByFullName", + "updatedDateTime" + ] + } + } + }, + "equinix:fabric/RouteFilterProject:RouteFilterProject": { + "properties": { + "href": { + "type": "string", + "description": "URI of the Fabric Project\n" + }, + "projectId": { + "type": "string", + "description": "Project id associated with Fabric Project\n" + } + }, + "type": "object", + "required": [ + "projectId" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "href", + "projectId" + ] + } + } + }, + "equinix:fabric/RouteFilterRuleChange:RouteFilterRuleChange": { + "properties": { + "href": { + "type": "string", + "description": "The URI of the previous Route Filter Rule Change\n" + }, + "type": { + "type": "string", + "description": "Type of change. One of [ \"BGP_IPv4_PREFIX_FILTER_RULE_UPDATE\",\"BGP_IPv4_PREFIX_FILTER_RULE_CREATION\",\"BGP_IPv4_PREFIX_FILTER_RULE_DELETION\",\"BGP_IPv6_PREFIX_FILTER_RULE_UPDATE\",\"BGP_IPv6_PREFIX_FILTER_RULE_CREATION\",\"BGP_IPv6_PREFIX_FILTER_RULE_DELETION\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Unique identifier for the previous change\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "href", + "type", + "uuid" + ] + } + } + }, + "equinix:fabric/RouteFilterRuleChangeLog:RouteFilterRuleChangeLog": { + "properties": { + "createdBy": { + "type": "string", + "description": "Created by User Key\n" + }, + "createdByEmail": { + "type": "string", + "description": "Created by User Email Address\n" + }, + "createdByFullName": { + "type": "string", + "description": "Created by User Full Name\n" + }, + "createdDateTime": { + "type": "string", + "description": "Created by Date and Time\n" + }, + "deletedBy": { + "type": "string", + "description": "Deleted by User Key\n" + }, + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address\n" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name\n" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time\n" + }, + "updatedBy": { + "type": "string", + "description": "Updated by User Key\n" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address\n" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name\n" + }, + "updatedDateTime": { + "type": "string", + "description": "Updated by Date and Time\n" + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "createdBy", + "createdByEmail", + "createdByFullName", + "createdDateTime", + "deletedBy", + "deletedByEmail", + "deletedByFullName", + "deletedDateTime", + "updatedBy", + "updatedByEmail", + "updatedByFullName", + "updatedDateTime" + ] + } + } + }, "equinix:fabric/RoutingProtocolBfd:RoutingProtocolBfd": { "properties": { "enabled": { @@ -4391,41 +4609,115 @@ } } }, - "equinix:fabric/getConnectionZSide:getConnectionZSide": { + "equinix:fabric/getConnectionRouteFiltersData:getConnectionRouteFiltersData": { "properties": { - "accessPoint": { - "$ref": "#/types/equinix:fabric/getConnectionZSideAccessPoint:getConnectionZSideAccessPoint", - "description": "Point of access details\n" + "attachmentStatus": { + "type": "string", + "description": "Status of the Route Filter Policy attachment lifecycle\n" }, - "additionalInfos": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getConnectionZSideAdditionalInfo:getConnectionZSideAdditionalInfo" - }, - "description": "Connection side additional information\n" + "direction": { + "type": "string", + "description": "Direction of the filtering of the attached Route Filter Policy\n" }, - "serviceToken": { - "$ref": "#/types/equinix:fabric/getConnectionZSideServiceToken:getConnectionZSideServiceToken", - "description": "For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets\n" + "href": { + "type": "string", + "description": "URI to the attached Route Filter Policy on the Connection\n" + }, + "type": { + "type": "string", + "description": "Route Filter Type. One of [ \"BGP_IPv4_PREFIX_FILTER\", \"BGP_IPv6_PREFIX_FILTER\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Policy\n" } }, - "type": "object" + "type": "object", + "required": [ + "attachmentStatus", + "direction", + "href", + "type", + "uuid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "equinix:fabric/getConnectionZSideAccessPoint:getConnectionZSideAccessPoint": { + "equinix:fabric/getConnectionRouteFiltersPagination:getConnectionRouteFiltersPagination": { "properties": { - "accounts": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getConnectionZSideAccessPointAccount:getConnectionZSideAccessPointAccount" - }, - "description": "Account\n" + "limit": { + "type": "integer", + "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" }, - "authenticationKey": { + "next": { "type": "string", - "description": "Authentication key for provider based connections or Metal-Fabric Integration connections\n" + "description": "URL relative to the last item in the response.\n" }, - "gateway": { - "$ref": "#/types/equinix:fabric/getConnectionZSideAccessPointGateway:getConnectionZSideAccessPointGateway", + "offset": { + "type": "integer", + "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" + }, + "previous": { + "type": "string", + "description": "URL relative to the first item in the response.\n" + }, + "total": { + "type": "integer", + "description": "Total number of elements returned.\n" + } + }, + "type": "object", + "required": [ + "limit", + "next", + "offset", + "previous", + "total" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getConnectionZSide:getConnectionZSide": { + "properties": { + "accessPoint": { + "$ref": "#/types/equinix:fabric/getConnectionZSideAccessPoint:getConnectionZSideAccessPoint", + "description": "Point of access details\n" + }, + "additionalInfos": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getConnectionZSideAdditionalInfo:getConnectionZSideAdditionalInfo" + }, + "description": "Connection side additional information\n" + }, + "serviceToken": { + "$ref": "#/types/equinix:fabric/getConnectionZSideServiceToken:getConnectionZSideServiceToken", + "description": "For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets\n" + } + }, + "type": "object" + }, + "equinix:fabric/getConnectionZSideAccessPoint:getConnectionZSideAccessPoint": { + "properties": { + "accounts": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getConnectionZSideAccessPointAccount:getConnectionZSideAccessPointAccount" + }, + "description": "Account\n" + }, + "authenticationKey": { + "type": "string", + "description": "Authentication key for provider based connections or Metal-Fabric Integration connections\n" + }, + "gateway": { + "$ref": "#/types/equinix:fabric/getConnectionZSideAccessPointGateway:getConnectionZSideAccessPointGateway", "description": "**Deprecated** `gateway` Use `router` attribute instead\n", "deprecationMessage": "use router attribute instead; gateway is no longer a part of the supported backend" }, @@ -7761,20 +8053,26 @@ "name" ] }, - "equinix:fabric/getRoutingProtocolBfd:getRoutingProtocolBfd": { + "equinix:fabric/getRouteFilterChange:getRouteFilterChange": { "properties": { - "enabled": { - "type": "boolean", - "description": "Bidirectional Forwarding Detection enablement\n" + "href": { + "type": "string", + "description": "The URI of the previous Route Filter Change\n" }, - "interval": { + "type": { "type": "string", - "description": "Interval range between the received BFD control packets\n" + "description": "Type of change. One of [ \"BGP_IPv4_PREFIX_FILTER_UPDATE\",\"BGP_IPv4_PREFIX_FILTER_CREATION\",\"BGP_IPv4_PREFIX_FILTER_DELETION\",\"BGP_IPv6_PREFIX_FILTER_UPDATE\",\"BGP_IPv6_PREFIX_FILTER_CREATION\",\"BGP_IPv6_PREFIX_FILTER_DELETION\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Unique identifier for the previous change\n" } }, "type": "object", "required": [ - "enabled" + "href", + "type", + "uuid" ], "language": { "nodejs": { @@ -7782,40 +8080,71 @@ } } }, - "equinix:fabric/getRoutingProtocolBgpIpv4:getRoutingProtocolBgpIpv4": { + "equinix:fabric/getRouteFilterChangeLog:getRouteFilterChangeLog": { "properties": { - "customerPeerIp": { + "createdBy": { "type": "string", - "description": "Customer side peering ip\n" + "description": "Created by User Key\n" }, - "enabled": { - "type": "boolean", - "description": "Admin status for the BGP session\n" + "createdByEmail": { + "type": "string", + "description": "Created by User Email Address\n" }, - "equinixPeerIp": { + "createdByFullName": { "type": "string", - "description": "Equinix side peering ip\n" + "description": "Created by User Full Name\n" }, - "inboundMed": { - "type": "integer", - "description": "Inbound Multi Exit Discriminator attribute\n" + "createdDateTime": { + "type": "string", + "description": "Created by Date and Time\n" }, - "outboundAsPrependCount": { + "deletedBy": { "type": "string", - "description": "AS path prepend count. One of: 0, 1, 3, 5\n" + "description": "Deleted by User Key\n" }, - "outboundMed": { - "type": "integer", - "description": "Outbound Multi Exit Discriminator attribute\n" + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address\n" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name\n" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time\n" + }, + "updatedBy": { + "type": "string", + "description": "Updated by User Key\n" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address\n" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name\n" + }, + "updatedDateTime": { + "type": "string", + "description": "Updated by Date and Time\n" } }, "type": "object", "required": [ - "customerPeerIp", - "equinixPeerIp", - "inboundMed", - "outboundAsPrependCount", - "outboundMed" + "createdBy", + "createdByEmail", + "createdByFullName", + "createdDateTime", + "deletedBy", + "deletedByEmail", + "deletedByFullName", + "deletedDateTime", + "updatedBy", + "updatedByEmail", + "updatedByFullName", + "updatedDateTime" ], "language": { "nodejs": { @@ -7823,40 +8152,21 @@ } } }, - "equinix:fabric/getRoutingProtocolBgpIpv6:getRoutingProtocolBgpIpv6": { + "equinix:fabric/getRouteFilterProject:getRouteFilterProject": { "properties": { - "customerPeerIp": { - "type": "string", - "description": "Customer side peering ip\n" - }, - "enabled": { - "type": "boolean", - "description": "Admin status for the BGP session\n" - }, - "equinixPeerIp": { + "href": { "type": "string", - "description": "Equinix side peering ip\n" - }, - "inboundMed": { - "type": "integer", - "description": "Inbound Multi Exit Discriminator attribute\n" + "description": "URI of the Fabric Project\n" }, - "outboundAsPrependCount": { + "projectId": { "type": "string", - "description": "AS path prepend count. One of: 0, 1, 3, 5\n" - }, - "outboundMed": { - "type": "integer", - "description": "Outbound Multi Exit Discriminator attribute\n" + "description": "Project id associated with Fabric Project\n" } }, "type": "object", "required": [ - "customerPeerIp", - "equinixPeerIp", - "inboundMed", - "outboundAsPrependCount", - "outboundMed" + "href", + "projectId" ], "language": { "nodejs": { @@ -7864,19 +8174,19 @@ } } }, - "equinix:fabric/getRoutingProtocolChange:getRoutingProtocolChange": { + "equinix:fabric/getRouteFilterRuleChange:getRouteFilterRuleChange": { "properties": { "href": { "type": "string", - "description": "Routing Protocol Change URI\n" + "description": "The URI of the previous Route Filter Rule Change\n" }, "type": { "type": "string", - "description": "Type of change\n" + "description": "Type of change. One of [ \"BGP_IPv4_PREFIX_FILTER_RULE_UPDATE\",\"BGP_IPv4_PREFIX_FILTER_RULE_CREATION\",\"BGP_IPv4_PREFIX_FILTER_RULE_DELETION\",\"BGP_IPv6_PREFIX_FILTER_RULE_UPDATE\",\"BGP_IPv6_PREFIX_FILTER_RULE_CREATION\",\"BGP_IPv6_PREFIX_FILTER_RULE_DELETION\" ]\n" }, "uuid": { "type": "string", - "description": "Uniquely identifies a change\n" + "description": "Unique identifier for the previous change\n" } }, "type": "object", @@ -7891,7 +8201,7 @@ } } }, - "equinix:fabric/getRoutingProtocolChangeLog:getRoutingProtocolChangeLog": { + "equinix:fabric/getRouteFilterRuleChangeLog:getRouteFilterRuleChangeLog": { "properties": { "createdBy": { "type": "string", @@ -7963,16 +8273,71 @@ } } }, - "equinix:fabric/getRoutingProtocolDirectIpv4:getRoutingProtocolDirectIpv4": { + "equinix:fabric/getRouteFilterRulesData:getRouteFilterRulesData": { "properties": { - "equinixIfaceIp": { + "action": { "type": "string", - "description": "Equinix side Interface IP address\n" + "description": "Action that will be taken on IP Addresses matching the rule\n" + }, + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterRulesDataChangeLog:getRouteFilterRulesDataChangeLog" + } + }, + "changes": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterRulesDataChange:getRouteFilterRulesDataChange" + }, + "description": "An object with the details of the previous change applied on the Route Filter\n" + }, + "description": { + "type": "string", + "description": "Optional description to add to the Route Filter you will be creating\n" + }, + "href": { + "type": "string", + "description": "Route filter rules URI\n" + }, + "name": { + "type": "string", + "description": "Name of the Route Filter\n" + }, + "prefix": { + "type": "string", + "description": "IP Address Prefix to Filter on\n" + }, + "prefixMatch": { + "type": "string", + "description": "Prefix matching operator. One of [ orlonger, exact ] Default: \"orlonger\"\n" + }, + "state": { + "type": "string", + "description": "State of the Route Filter Rule in its lifecycle\n" + }, + "type": { + "type": "string", + "description": "Route Filter Type. One of [ BGP_IPv4_PREFIX_FILTER_RULE, BGP_IPv6_PREFIX_FILTER_RULE ]\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Rule to retrieve data for\n" } }, "type": "object", "required": [ - "equinixIfaceIp" + "action", + "changes", + "changeLogs", + "description", + "href", + "name", + "prefix", + "prefixMatch", + "state", + "type", + "uuid" ], "language": { "nodejs": { @@ -7980,28 +8345,26 @@ } } }, - "equinix:fabric/getRoutingProtocolDirectIpv6:getRoutingProtocolDirectIpv6": { + "equinix:fabric/getRouteFilterRulesDataChange:getRouteFilterRulesDataChange": { "properties": { - "equinixIfaceIp": { + "href": { "type": "string", - "description": "Equinix side Interface IP address\n" - } - }, - "type": "object" - }, - "equinix:fabric/getRoutingProtocolOperation:getRoutingProtocolOperation": { - "properties": { - "errors": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getRoutingProtocolOperationError:getRoutingProtocolOperationError" - }, - "description": "Errors occurred\n" + "description": "The URI of the previous Route Filter Rule Change\n" + }, + "type": { + "type": "string", + "description": "Type of change. One of [ \"BGP_IPv4_PREFIX_FILTER_RULE_UPDATE\",\"BGP_IPv4_PREFIX_FILTER_RULE_CREATION\",\"BGP_IPv4_PREFIX_FILTER_RULE_DELETION\",\"BGP_IPv6_PREFIX_FILTER_RULE_UPDATE\",\"BGP_IPv6_PREFIX_FILTER_RULE_CREATION\",\"BGP_IPv6_PREFIX_FILTER_RULE_DELETION\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Unique identifier for the previous change\n" } }, "type": "object", "required": [ - "errors" + "href", + "type", + "uuid" ], "language": { "nodejs": { @@ -8009,44 +8372,71 @@ } } }, - "equinix:fabric/getRoutingProtocolOperationError:getRoutingProtocolOperationError": { + "equinix:fabric/getRouteFilterRulesDataChangeLog:getRouteFilterRulesDataChangeLog": { "properties": { - "additionalInfos": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getRoutingProtocolOperationErrorAdditionalInfo:getRoutingProtocolOperationErrorAdditionalInfo" - }, - "description": "Pricing error additional Info\n" - }, - "correlationId": { + "createdBy": { "type": "string", - "description": "CorrelationId\n" + "description": "Created by User Key\n" }, - "details": { + "createdByEmail": { "type": "string", - "description": "Details\n" + "description": "Created by User Email Address\n" }, - "errorCode": { + "createdByFullName": { "type": "string", - "description": "Error code\n" + "description": "Created by User Full Name\n" }, - "errorMessage": { + "createdDateTime": { "type": "string", - "description": "Error Message\n" + "description": "Created by Date and Time\n" }, - "help": { + "deletedBy": { "type": "string", - "description": "Help\n" + "description": "Deleted by User Key\n" + }, + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address\n" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name\n" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time\n" + }, + "updatedBy": { + "type": "string", + "description": "Updated by User Key\n" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address\n" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name\n" + }, + "updatedDateTime": { + "type": "string", + "description": "Updated by Date and Time\n" } }, "type": "object", "required": [ - "additionalInfos", - "correlationId", - "details", - "errorCode", - "errorMessage", - "help" + "createdBy", + "createdByEmail", + "createdByFullName", + "createdDateTime", + "deletedBy", + "deletedByEmail", + "deletedByFullName", + "deletedDateTime", + "updatedBy", + "updatedByEmail", + "updatedByFullName", + "updatedDateTime" ], "language": { "nodejs": { @@ -8054,21 +8444,36 @@ } } }, - "equinix:fabric/getRoutingProtocolOperationErrorAdditionalInfo:getRoutingProtocolOperationErrorAdditionalInfo": { + "equinix:fabric/getRouteFilterRulesPagination:getRouteFilterRulesPagination": { "properties": { - "property": { + "limit": { + "type": "integer", + "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" + }, + "next": { "type": "string", - "description": "Property at which the error potentially occurred\n" + "description": "URL relative to the last item in the response.\n" }, - "reason": { + "offset": { + "type": "integer", + "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" + }, + "previous": { "type": "string", - "description": "Reason for the error\n" + "description": "URL relative to the first item in the response.\n" + }, + "total": { + "type": "integer", + "description": "Total number of elements returned.\n" } }, "type": "object", "required": [ - "property", - "reason" + "limit", + "next", + "offset", + "previous", + "total" ], "language": { "nodejs": { @@ -8076,70 +8481,77 @@ } } }, - "equinix:fabric/getServiceProfileAccessPointTypeConfig:getServiceProfileAccessPointTypeConfig": { + "equinix:fabric/getRouteFiltersData:getRouteFiltersData": { "properties": { - "allowBandwidthAutoApproval": { - "type": "boolean", - "description": "Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller\n" - }, - "allowBandwidthUpgrade": { - "type": "boolean", - "description": "Availability of a bandwidth upgrade. The default is false\n" - }, - "allowCustomBandwidth": { - "type": "boolean", - "description": "Setting to enable or disable the ability of the buyer to customize the bandwidth\n" - }, - "allowRemoteConnections": { - "type": "boolean", - "description": "Setting to allow or prohibit remote connections to the service profile\n" - }, - "apiConfig": { - "$ref": "#/types/equinix:fabric/getServiceProfileAccessPointTypeConfigApiConfig:getServiceProfileAccessPointTypeConfigApiConfig", - "description": "Api configuration details\n" + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersDataChangeLog:getRouteFiltersDataChangeLog" + } }, - "authenticationKey": { - "$ref": "#/types/equinix:fabric/getServiceProfileAccessPointTypeConfigAuthenticationKey:getServiceProfileAccessPointTypeConfigAuthenticationKey", - "description": "Authentication key details\n" + "changes": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersDataChange:getRouteFiltersDataChange" + }, + "description": "An object with the details of the previous change applied on the Route Filter\n" }, - "bandwidthAlertThreshold": { - "type": "number", - "description": "Percentage of port bandwidth at which an allocation alert is generated\n" + "connectionsCount": { + "type": "integer", + "description": "The number of Fabric Connections that this Route Filter is attached to\n" }, - "connectionLabel": { + "description": { "type": "string", - "description": "Custom name for Connection\n" + "description": "Optional description to add to the Route Filter you will be creating\n" }, - "connectionRedundancyRequired": { - "type": "boolean", - "description": "Mandate redundant connections\n" + "href": { + "type": "string", + "description": "Route filter URI\n" }, - "enableAutoGenerateServiceKey": { - "type": "boolean", - "description": "Enable auto generate service key\n" + "name": { + "type": "string", + "description": "Name of the Route Filter\n" }, - "linkProtocolConfig": { - "$ref": "#/types/equinix:fabric/getServiceProfileAccessPointTypeConfigLinkProtocolConfig:getServiceProfileAccessPointTypeConfigLinkProtocolConfig", - "description": "Link protocol configuration details\n" + "notMatchedRuleAction": { + "type": "string", + "description": "The action that will be taken on ip ranges that don't match the rules present within the Route Filter\n" }, - "supportedBandwidths": { + "projects": { "type": "array", "items": { - "type": "integer" + "$ref": "#/types/equinix:fabric/getRouteFiltersDataProject:getRouteFiltersDataProject" }, - "description": "Supported bandwidths\n" + "description": "The Project object that contains project_id and href that is related to the Fabric Project containing connections the Route Filter can be attached to\n" + }, + "rulesCount": { + "type": "integer", + "description": "The number of Route Filter Rules attached to this Route Filter\n" + }, + "state": { + "type": "string", + "description": "State of the Route Filter in its lifecycle\n" }, "type": { "type": "string", - "description": "Type of access point type config - VD, COLO\n" + "description": "Route Filter Type. One of [ \"BGP_IPv4_PREFIX_FILTER\", \"BGP_IPv6_PREFIX_FILTER\" ]\n" }, "uuid": { "type": "string", - "description": "Colo/Port Uuid\n" + "description": "Equinix Assigned ID for Route Filter\n" } }, "type": "object", "required": [ + "changes", + "changeLogs", + "connectionsCount", + "description", + "href", + "name", + "notMatchedRuleAction", + "projects", + "rulesCount", + "state", "type", "uuid" ], @@ -8149,156 +8561,64 @@ } } }, - "equinix:fabric/getServiceProfileAccessPointTypeConfigApiConfig:getServiceProfileAccessPointTypeConfigApiConfig": { + "equinix:fabric/getRouteFiltersDataChange:getRouteFiltersDataChange": { "properties": { - "allowOverSubscription": { - "type": "boolean", - "description": "Setting showing that oversubscription support is available (true) or not (false). The default is false\n" - }, - "apiAvailable": { - "type": "boolean", - "description": "Indicates if it's possible to establish connections based on the given service profile using the Equinix Fabric API.\n" - }, - "bandwidthFromApi": { - "type": "boolean", - "description": "Indicates if the connection bandwidth can be obtained directly from the cloud service provider.\n" - }, - "equinixManagedPort": { - "type": "boolean", - "description": "Setting indicating that the port is managed by Equinix (true) or not (false)\n" - }, - "equinixManagedVlan": { - "type": "boolean", - "description": "Setting indicating that the VLAN is managed by Equinix (true) or not (false)\n" - }, - "integrationId": { + "href": { "type": "string", - "description": "A unique identifier issued during onboarding and used to integrate the customer's service profile with the Equinix Fabric API.\n" + "description": "The URI of the previous Route Filter Change\n" }, - "overSubscriptionLimit": { - "type": "integer", - "description": "Port bandwidth multiplier that determines the total bandwidth that can be allocated to users creating connections to your services. For example, a 10 Gbps port combined with an overSubscriptionLimit parameter value of 10 allows your subscribers to create connections with a total bandwidth of 100 Gbps.\n" - } - }, - "type": "object" - }, - "equinix:fabric/getServiceProfileAccessPointTypeConfigAuthenticationKey:getServiceProfileAccessPointTypeConfigAuthenticationKey": { - "properties": { - "description": { + "type": { "type": "string", - "description": "Description of authorization key\n" + "description": "Type of change. One of [ \"BGP_IPv4_PREFIX_FILTER_UPDATE\",\"BGP_IPv4_PREFIX_FILTER_CREATION\",\"BGP_IPv4_PREFIX_FILTER_DELETION\",\"BGP_IPv6_PREFIX_FILTER_UPDATE\",\"BGP_IPv6_PREFIX_FILTER_CREATION\",\"BGP_IPv6_PREFIX_FILTER_DELETION\" ]\n" }, - "label": { + "uuid": { "type": "string", - "description": "Name of the parameter that must be provided to authorize the connection.\n" - }, - "required": { - "type": "boolean", - "description": "Requirement to configure an authentication key.\n" + "description": "Unique identifier for the previous change\n" } }, - "type": "object" + "type": "object", + "required": [ + "href", + "type", + "uuid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "equinix:fabric/getServiceProfileAccessPointTypeConfigLinkProtocolConfig:getServiceProfileAccessPointTypeConfigLinkProtocolConfig": { + "equinix:fabric/getRouteFiltersDataChangeLog:getRouteFiltersDataChangeLog": { "properties": { - "encapsulation": { + "createdBy": { "type": "string", - "description": "Data frames encapsulation standard.UNTAGGED - Untagged encapsulation for EPL connections. DOT1Q - DOT1Q encapsulation standard. QINQ - QINQ encapsulation standard.\n" + "description": "Created by User Key\n" }, - "encapsulationStrategy": { + "createdByEmail": { "type": "string", - "description": "Additional tagging information required by the seller profile.\n" + "description": "Created by User Email Address\n" }, - "reuseVlanSTag": { - "type": "boolean", - "description": "Automatically accept subsequent DOT1Q to QINQ connections that use the same authentication key. These connections will have the same VLAN S-tag assigned as the initial connection.\n" - } - }, - "type": "object" - }, - "equinix:fabric/getServiceProfileAccount:getServiceProfileAccount": { - "properties": { - "accountName": { + "createdByFullName": { "type": "string", - "description": "Legal name of the accountholder.\n" - }, - "accountNumber": { - "type": "integer", - "description": "Equinix-assigned account number.\n" + "description": "Created by User Full Name\n" }, - "globalCustId": { + "createdDateTime": { "type": "string", - "description": "Equinix-assigned ID of the subscriber's parent organization.\n" + "description": "Created by Date and Time\n" }, - "globalOrgId": { + "deletedBy": { "type": "string", - "description": "Equinix-assigned ID of the subscriber's parent organization.\n" + "description": "Deleted by User Key\n" }, - "globalOrganizationName": { + "deletedByEmail": { "type": "string", - "description": "Equinix-assigned name of the subscriber's parent organization.\n" - }, - "orgId": { - "type": "integer", - "description": "Equinix-assigned ID of the subscriber's organization.\n" + "description": "Deleted by User Email Address\n" }, - "organizationName": { + "deletedByFullName": { "type": "string", - "description": "Equinix-assigned name of the subscriber's organization.\n" + "description": "Deleted by User Full Name\n" }, - "ucmId": { - "type": "string", - "description": "Enterprise datastore id\n" - } - }, - "type": "object", - "required": [ - "accountName", - "accountNumber", - "globalCustId", - "globalOrgId", - "globalOrganizationName", - "orgId", - "organizationName", - "ucmId" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:fabric/getServiceProfileChangeLog:getServiceProfileChangeLog": { - "properties": { - "createdBy": { - "type": "string", - "description": "Created by User Key\n" - }, - "createdByEmail": { - "type": "string", - "description": "Created by User Email Address\n" - }, - "createdByFullName": { - "type": "string", - "description": "Created by User Full Name\n" - }, - "createdDateTime": { - "type": "string", - "description": "Created by Date and Time\n" - }, - "deletedBy": { - "type": "string", - "description": "Deleted by User Key\n" - }, - "deletedByEmail": { - "type": "string", - "description": "Deleted by User Email Address\n" - }, - "deletedByFullName": { - "type": "string", - "description": "Deleted by User Full Name\n" - }, - "deletedDateTime": { + "deletedDateTime": { "type": "string", "description": "Deleted by Date and Time\n" }, @@ -8340,41 +8660,21 @@ } } }, - "equinix:fabric/getServiceProfileCustomField:getServiceProfileCustomField": { + "equinix:fabric/getRouteFiltersDataProject:getRouteFiltersDataProject": { "properties": { - "captureInEmail": { - "type": "boolean", - "description": "Required field\n" - }, - "dataType": { - "type": "string", - "description": "Data type\n" - }, - "description": { + "href": { "type": "string", - "description": "Description\n" + "description": "URI of the Fabric Project\n" }, - "label": { + "projectId": { "type": "string", - "description": "Label\n" - }, - "options": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Options\n" - }, - "required": { - "type": "boolean", - "description": "Required field\n" + "description": "Project id associated with Fabric Project\n" } }, "type": "object", "required": [ - "dataType", - "label", - "required" + "href", + "projectId" ], "language": { "nodejs": { @@ -8382,100 +8682,95 @@ } } }, - "equinix:fabric/getServiceProfileMarketingInfo:getServiceProfileMarketingInfo": { + "equinix:fabric/getRouteFiltersFilter:getRouteFiltersFilter": { "properties": { - "logo": { + "operator": { "type": "string", - "description": "Logo\n" + "description": "Possible operators to use on the filter property. Can be one of the following: [ \"=\", \"!=\", \"[NOT] LIKE\", \"[NOT] IN\", \"ILIKE\" ]\n" }, - "processSteps": { + "property": { + "type": "string", + "description": "The API response property which you want to filter your request on. Can be one of the following: \"/type\", \"/name\", \"/project/projectId\", \"/uuid\", \"/state\"\n" + }, + "values": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/getServiceProfileMarketingInfoProcessStep:getServiceProfileMarketingInfoProcessStep" + "type": "string" }, - "description": "Process Step\n" - }, - "promotion": { - "type": "boolean", - "description": "Promotion\n" + "description": "The values that you want to apply the property+operator combination to in order to filter your data search\n" } }, - "type": "object" + "type": "object", + "required": [ + "operator", + "property", + "values" + ] }, - "equinix:fabric/getServiceProfileMarketingInfoProcessStep:getServiceProfileMarketingInfoProcessStep": { + "equinix:fabric/getRouteFiltersPagination:getRouteFiltersPagination": { "properties": { - "description": { - "type": "string", - "description": "Description\n" + "limit": { + "type": "integer", + "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" }, - "subTitle": { + "next": { "type": "string", - "description": "Sub Title\n" + "description": "URL relative to the last item in the response.\n" }, - "title": { + "offset": { + "type": "integer", + "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" + }, + "previous": { "type": "string", - "description": "Title\n" + "description": "URL relative to the first item in the response.\n" + }, + "total": { + "type": "integer", + "description": "Total number of elements returned.\n" } }, - "type": "object" + "type": "object", + "required": [ + "limit", + "next", + "offset", + "previous", + "total" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "equinix:fabric/getServiceProfileMetro:getServiceProfileMetro": { + "equinix:fabric/getRouteFiltersSort:getRouteFiltersSort": { "properties": { - "code": { - "type": "string", - "description": "Metro Code - Example SV\n" - }, - "displayName": { + "direction": { "type": "string", - "description": "Display Name\n" - }, - "ibxs": { - "type": "array", - "items": { - "type": "string" - }, - "description": "IBX- Equinix International Business Exchange list\n" - }, - "inTrail": { - "type": "boolean", - "description": "In Trail\n" + "description": "The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC\n" }, - "name": { + "property": { "type": "string", - "description": "Metro Name\n" - }, - "sellerRegions": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Seller Regions\n" + "description": "The property name to use in sorting. Can be one of the following: [/type, /uuid, /name, /project/projectId, /state, /notMatchedRuleAction, /connectionsCount, /changeLog/createdDateTime, /changeLog/updatedDateTime], Defaults to /changeLog/updatedDateTime\n" } }, "type": "object" }, - "equinix:fabric/getServiceProfileNotification:getServiceProfileNotification": { + "equinix:fabric/getRoutingProtocolBfd:getRoutingProtocolBfd": { "properties": { - "emails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of contact emails\n" - }, - "sendInterval": { - "type": "string", - "description": "Send interval\n" + "enabled": { + "type": "boolean", + "description": "Bidirectional Forwarding Detection enablement\n" }, - "type": { + "interval": { "type": "string", - "description": "Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS\n" + "description": "Interval range between the received BFD control packets\n" } }, "type": "object", "required": [ - "emails", - "type" + "enabled" ], "language": { "nodejs": { @@ -8483,37 +8778,40 @@ } } }, - "equinix:fabric/getServiceProfilePort:getServiceProfilePort": { + "equinix:fabric/getRoutingProtocolBgpIpv4:getRoutingProtocolBgpIpv4": { "properties": { - "crossConnectId": { + "customerPeerIp": { "type": "string", - "description": "Cross Connect Id\n" + "description": "Customer side peering ip\n" }, - "location": { - "$ref": "#/types/equinix:fabric/getServiceProfilePortLocation:getServiceProfilePortLocation", - "description": "Colo/Port Location\n" + "enabled": { + "type": "boolean", + "description": "Admin status for the BGP session\n" }, - "sellerRegion": { + "equinixPeerIp": { "type": "string", - "description": "Seller Region\n" + "description": "Equinix side peering ip\n" }, - "sellerRegionDescription": { - "type": "string", - "description": "Seller Region details\n" + "inboundMed": { + "type": "integer", + "description": "Inbound Multi Exit Discriminator attribute\n" }, - "type": { + "outboundAsPrependCount": { "type": "string", - "description": "Colo/Port Type\n" + "description": "AS path prepend count. One of: 0, 1, 3, 5\n" }, - "uuid": { - "type": "string", - "description": "Colo/Port Uuid\n" + "outboundMed": { + "type": "integer", + "description": "Outbound Multi Exit Discriminator attribute\n" } }, "type": "object", "required": [ - "type", - "uuid" + "customerPeerIp", + "equinixPeerIp", + "inboundMed", + "outboundAsPrependCount", + "outboundMed" ], "language": { "nodejs": { @@ -8521,31 +8819,40 @@ } } }, - "equinix:fabric/getServiceProfilePortLocation:getServiceProfilePortLocation": { + "equinix:fabric/getRoutingProtocolBgpIpv6:getRoutingProtocolBgpIpv6": { "properties": { - "ibx": { + "customerPeerIp": { "type": "string", - "description": "IBX Code\n" + "description": "Customer side peering ip\n" }, - "metroCode": { - "type": "string", - "description": "Access point metro code\n" + "enabled": { + "type": "boolean", + "description": "Admin status for the BGP session\n" }, - "metroName": { + "equinixPeerIp": { "type": "string", - "description": "Access point metro name\n" + "description": "Equinix side peering ip\n" }, - "region": { + "inboundMed": { + "type": "integer", + "description": "Inbound Multi Exit Discriminator attribute\n" + }, + "outboundAsPrependCount": { "type": "string", - "description": "Access point region\n" + "description": "AS path prepend count. One of: 0, 1, 3, 5\n" + }, + "outboundMed": { + "type": "integer", + "description": "Outbound Multi Exit Discriminator attribute\n" } }, "type": "object", "required": [ - "ibx", - "metroCode", - "metroName", - "region" + "customerPeerIp", + "equinixPeerIp", + "inboundMed", + "outboundAsPrependCount", + "outboundMed" ], "language": { "nodejs": { @@ -8553,21 +8860,26 @@ } } }, - "equinix:fabric/getServiceProfileProject:getServiceProfileProject": { + "equinix:fabric/getRoutingProtocolChange:getRoutingProtocolChange": { "properties": { "href": { "type": "string", - "description": "Unique Resource URL\n" + "description": "Routing Protocol Change URI\n" }, - "projectId": { + "type": { "type": "string", - "description": "Project Id\n" + "description": "Type of change\n" + }, + "uuid": { + "type": "string", + "description": "Uniquely identifies a change\n" } }, "type": "object", "required": [ "href", - "projectId" + "type", + "uuid" ], "language": { "nodejs": { @@ -8575,29 +8887,71 @@ } } }, - "equinix:fabric/getServiceProfileVirtualDevice:getServiceProfileVirtualDevice": { + "equinix:fabric/getRoutingProtocolChangeLog:getRoutingProtocolChangeLog": { "properties": { - "interfaceUuid": { + "createdBy": { "type": "string", - "description": "Device Interface Uuid\n" + "description": "Created by User Key\n" }, - "location": { - "$ref": "#/types/equinix:fabric/getServiceProfileVirtualDeviceLocation:getServiceProfileVirtualDeviceLocation", - "description": "Device Location\n" + "createdByEmail": { + "type": "string", + "description": "Created by User Email Address\n" }, - "type": { + "createdByFullName": { "type": "string", - "description": "Virtual Device Type\n" + "description": "Created by User Full Name\n" }, - "uuid": { + "createdDateTime": { "type": "string", - "description": "Virtual Device Uuid\n" + "description": "Created by Date and Time\n" + }, + "deletedBy": { + "type": "string", + "description": "Deleted by User Key\n" + }, + "deletedByEmail": { + "type": "string", + "description": "Deleted by User Email Address\n" + }, + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name\n" + }, + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time\n" + }, + "updatedBy": { + "type": "string", + "description": "Updated by User Key\n" + }, + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address\n" + }, + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name\n" + }, + "updatedDateTime": { + "type": "string", + "description": "Updated by Date and Time\n" } }, "type": "object", "required": [ - "type", - "uuid" + "createdBy", + "createdByEmail", + "createdByFullName", + "createdDateTime", + "deletedBy", + "deletedByEmail", + "deletedByFullName", + "deletedDateTime", + "updatedBy", + "updatedByEmail", + "updatedByFullName", + "updatedDateTime" ], "language": { "nodejs": { @@ -8605,31 +8959,16 @@ } } }, - "equinix:fabric/getServiceProfileVirtualDeviceLocation:getServiceProfileVirtualDeviceLocation": { + "equinix:fabric/getRoutingProtocolDirectIpv4:getRoutingProtocolDirectIpv4": { "properties": { - "ibx": { - "type": "string", - "description": "IBX Code\n" - }, - "metroCode": { - "type": "string", - "description": "Access point metro code\n" - }, - "metroName": { - "type": "string", - "description": "Access point metro name\n" - }, - "region": { + "equinixIfaceIp": { "type": "string", - "description": "Access point region\n" + "description": "Equinix side Interface IP address\n" } }, "type": "object", "required": [ - "ibx", - "metroCode", - "metroName", - "region" + "equinixIfaceIp" ], "language": { "nodejs": { @@ -8637,152 +8976,73 @@ } } }, - "equinix:fabric/getServiceProfilesDatum:getServiceProfilesDatum": { + "equinix:fabric/getRoutingProtocolDirectIpv6:getRoutingProtocolDirectIpv6": { "properties": { - "accessPointTypeConfigs": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfig:getServiceProfilesDatumAccessPointTypeConfig" - }, - "description": "Access point config information\n" - }, - "accounts": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccount:getServiceProfilesDatumAccount" - }, - "description": "Service Profile Owner Account Information\n" - }, - "allowedEmails": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of contact emails\n" - }, - "changeLogs": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumChangeLog:getServiceProfilesDatumChangeLog" - }, - "description": "Captures connection lifecycle change information\n" - }, - "customFields": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumCustomField:getServiceProfilesDatumCustomField" - }, - "description": "Custom Fields\n" - }, - "description": { - "type": "string", - "description": "User-provided service description\n" - }, - "href": { - "type": "string", - "description": "Service Profile URI response attribute\n" - }, - "marketingInfos": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumMarketingInfo:getServiceProfilesDatumMarketingInfo" - }, - "description": "Marketing Info\n" - }, - "metros": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumMetro:getServiceProfilesDatumMetro" - }, - "description": "Access point config information\n" - }, - "name": { + "equinixIfaceIp": { "type": "string", - "description": "Customer-assigned service profile name\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumNotification:getServiceProfilesDatumNotification" - }, - "description": "Preferences for notifications on connection configuration or status changes\n" - }, - "ports": { + "description": "Equinix side Interface IP address\n" + } + }, + "type": "object" + }, + "equinix:fabric/getRoutingProtocolOperation:getRoutingProtocolOperation": { + "properties": { + "errors": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumPort:getServiceProfilesDatumPort" + "$ref": "#/types/equinix:fabric/getRoutingProtocolOperationError:getRoutingProtocolOperationError" }, - "description": "Ports\n" - }, - "projects": { + "description": "Errors occurred\n" + } + }, + "type": "object", + "required": [ + "errors" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getRoutingProtocolOperationError:getRoutingProtocolOperationError": { + "properties": { + "additionalInfos": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumProject:getServiceProfilesDatumProject" + "$ref": "#/types/equinix:fabric/getRoutingProtocolOperationErrorAdditionalInfo:getRoutingProtocolOperationErrorAdditionalInfo" }, - "description": "Project information\n" - }, - "selfProfile": { - "type": "boolean", - "description": "Self Profile indicating if the profile is created for customer's self use\n" + "description": "Pricing error additional Info\n" }, - "state": { + "correlationId": { "type": "string", - "description": "Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED\n" - }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags attached to the connection\n" + "description": "CorrelationId\n" }, - "type": { + "details": { "type": "string", - "description": "Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE, IA_PROFILE\n" + "description": "Details\n" }, - "uuid": { + "errorCode": { "type": "string", - "description": "Equinix assigned service profile identifier\n" + "description": "Error code\n" }, - "viewPoint": { + "errorMessage": { "type": "string", - "description": "Flips view between buyer and seller representation. Available values : aSide, zSide. Default value : aSide\n" - }, - "virtualDevices": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumVirtualDevice:getServiceProfilesDatumVirtualDevice" - }, - "description": "Virtual Devices\n" + "description": "Error Message\n" }, - "visibility": { + "help": { "type": "string", - "description": "Service profile visibility - PUBLIC, PRIVATE\n" + "description": "Help\n" } }, "type": "object", "required": [ - "accessPointTypeConfigs", - "accounts", - "allowedEmails", - "changeLogs", - "customFields", - "description", - "href", - "marketingInfos", - "metros", - "name", - "notifications", - "ports", - "projects", - "selfProfile", - "state", - "tags", - "type", - "uuid", - "viewPoint", - "virtualDevices", - "visibility" + "additionalInfos", + "correlationId", + "details", + "errorCode", + "errorMessage", + "help" ], "language": { "nodejs": { @@ -8790,7 +9050,29 @@ } } }, - "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfig:getServiceProfilesDatumAccessPointTypeConfig": { + "equinix:fabric/getRoutingProtocolOperationErrorAdditionalInfo:getRoutingProtocolOperationErrorAdditionalInfo": { + "properties": { + "property": { + "type": "string", + "description": "Property at which the error potentially occurred\n" + }, + "reason": { + "type": "string", + "description": "Reason for the error\n" + } + }, + "type": "object", + "required": [ + "property", + "reason" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfileAccessPointTypeConfig:getServiceProfileAccessPointTypeConfig": { "properties": { "allowBandwidthAutoApproval": { "type": "boolean", @@ -8809,11 +9091,11 @@ "description": "Setting to allow or prohibit remote connections to the service profile\n" }, "apiConfig": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigApiConfig:getServiceProfilesDatumAccessPointTypeConfigApiConfig", + "$ref": "#/types/equinix:fabric/getServiceProfileAccessPointTypeConfigApiConfig:getServiceProfileAccessPointTypeConfigApiConfig", "description": "Api configuration details\n" }, "authenticationKey": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey:getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey", + "$ref": "#/types/equinix:fabric/getServiceProfileAccessPointTypeConfigAuthenticationKey:getServiceProfileAccessPointTypeConfigAuthenticationKey", "description": "Authentication key details\n" }, "bandwidthAlertThreshold": { @@ -8833,7 +9115,7 @@ "description": "Enable auto generate service key\n" }, "linkProtocolConfig": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig:getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig", + "$ref": "#/types/equinix:fabric/getServiceProfileAccessPointTypeConfigLinkProtocolConfig:getServiceProfileAccessPointTypeConfigLinkProtocolConfig", "description": "Link protocol configuration details\n" }, "supportedBandwidths": { @@ -8863,7 +9145,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigApiConfig:getServiceProfilesDatumAccessPointTypeConfigApiConfig": { + "equinix:fabric/getServiceProfileAccessPointTypeConfigApiConfig:getServiceProfileAccessPointTypeConfigApiConfig": { "properties": { "allowOverSubscription": { "type": "boolean", @@ -8896,7 +9178,7 @@ }, "type": "object" }, - "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey:getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey": { + "equinix:fabric/getServiceProfileAccessPointTypeConfigAuthenticationKey:getServiceProfileAccessPointTypeConfigAuthenticationKey": { "properties": { "description": { "type": "string", @@ -8913,7 +9195,7 @@ }, "type": "object" }, - "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig:getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig": { + "equinix:fabric/getServiceProfileAccessPointTypeConfigLinkProtocolConfig:getServiceProfileAccessPointTypeConfigLinkProtocolConfig": { "properties": { "encapsulation": { "type": "string", @@ -8930,7 +9212,7 @@ }, "type": "object" }, - "equinix:fabric/getServiceProfilesDatumAccount:getServiceProfilesDatumAccount": { + "equinix:fabric/getServiceProfileAccount:getServiceProfileAccount": { "properties": { "accountName": { "type": "string", @@ -8982,7 +9264,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumChangeLog:getServiceProfilesDatumChangeLog": { + "equinix:fabric/getServiceProfileChangeLog:getServiceProfileChangeLog": { "properties": { "createdBy": { "type": "string", @@ -9054,7 +9336,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumCustomField:getServiceProfilesDatumCustomField": { + "equinix:fabric/getServiceProfileCustomField:getServiceProfileCustomField": { "properties": { "captureInEmail": { "type": "boolean", @@ -9096,7 +9378,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumMarketingInfo:getServiceProfilesDatumMarketingInfo": { + "equinix:fabric/getServiceProfileMarketingInfo:getServiceProfileMarketingInfo": { "properties": { "logo": { "type": "string", @@ -9105,7 +9387,7 @@ "processSteps": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumMarketingInfoProcessStep:getServiceProfilesDatumMarketingInfoProcessStep" + "$ref": "#/types/equinix:fabric/getServiceProfileMarketingInfoProcessStep:getServiceProfileMarketingInfoProcessStep" }, "description": "Process Step\n" }, @@ -9116,7 +9398,7 @@ }, "type": "object" }, - "equinix:fabric/getServiceProfilesDatumMarketingInfoProcessStep:getServiceProfilesDatumMarketingInfoProcessStep": { + "equinix:fabric/getServiceProfileMarketingInfoProcessStep:getServiceProfileMarketingInfoProcessStep": { "properties": { "description": { "type": "string", @@ -9133,7 +9415,7 @@ }, "type": "object" }, - "equinix:fabric/getServiceProfilesDatumMetro:getServiceProfilesDatumMetro": { + "equinix:fabric/getServiceProfileMetro:getServiceProfileMetro": { "properties": { "code": { "type": "string", @@ -9168,7 +9450,7 @@ }, "type": "object" }, - "equinix:fabric/getServiceProfilesDatumNotification:getServiceProfilesDatumNotification": { + "equinix:fabric/getServiceProfileNotification:getServiceProfileNotification": { "properties": { "emails": { "type": "array", @@ -9197,14 +9479,14 @@ } } }, - "equinix:fabric/getServiceProfilesDatumPort:getServiceProfilesDatumPort": { + "equinix:fabric/getServiceProfilePort:getServiceProfilePort": { "properties": { "crossConnectId": { "type": "string", "description": "Cross Connect Id\n" }, "location": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumPortLocation:getServiceProfilesDatumPortLocation", + "$ref": "#/types/equinix:fabric/getServiceProfilePortLocation:getServiceProfilePortLocation", "description": "Colo/Port Location\n" }, "sellerRegion": { @@ -9235,7 +9517,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumPortLocation:getServiceProfilesDatumPortLocation": { + "equinix:fabric/getServiceProfilePortLocation:getServiceProfilePortLocation": { "properties": { "ibx": { "type": "string", @@ -9267,7 +9549,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumProject:getServiceProfilesDatumProject": { + "equinix:fabric/getServiceProfileProject:getServiceProfileProject": { "properties": { "href": { "type": "string", @@ -9289,14 +9571,14 @@ } } }, - "equinix:fabric/getServiceProfilesDatumVirtualDevice:getServiceProfilesDatumVirtualDevice": { + "equinix:fabric/getServiceProfileVirtualDevice:getServiceProfileVirtualDevice": { "properties": { "interfaceUuid": { "type": "string", "description": "Device Interface Uuid\n" }, "location": { - "$ref": "#/types/equinix:fabric/getServiceProfilesDatumVirtualDeviceLocation:getServiceProfilesDatumVirtualDeviceLocation", + "$ref": "#/types/equinix:fabric/getServiceProfileVirtualDeviceLocation:getServiceProfileVirtualDeviceLocation", "description": "Device Location\n" }, "type": { @@ -9319,7 +9601,7 @@ } } }, - "equinix:fabric/getServiceProfilesDatumVirtualDeviceLocation:getServiceProfilesDatumVirtualDeviceLocation": { + "equinix:fabric/getServiceProfileVirtualDeviceLocation:getServiceProfileVirtualDeviceLocation": { "properties": { "ibx": { "type": "string", @@ -9351,1084 +9633,1120 @@ } } }, - "equinix:fabric/getServiceProfilesFilter:getServiceProfilesFilter": { + "equinix:fabric/getServiceProfilesDatum:getServiceProfilesDatum": { "properties": { - "operator": { - "type": "string", - "description": "Operators to use on your filtered field with the values given. One of [=]\n" + "accessPointTypeConfigs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfig:getServiceProfilesDatumAccessPointTypeConfig" + }, + "description": "Access point config information\n" }, - "property": { - "type": "string", - "description": "Property to apply operator and values to. One of [/name /uuid /state /metros/code /visibility /type /project/projectId]\n" + "accounts": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccount:getServiceProfilesDatumAccount" + }, + "description": "Service Profile Owner Account Information\n" }, - "values": { + "allowedEmails": { "type": "array", "items": { "type": "string" }, - "description": "The values that you want to apply the property+operator combination to in order to filter your data search\n" - } - }, - "type": "object", - "required": [ - "operator", - "property", - "values" - ] - }, - "equinix:fabric/getServiceProfilesPagination:getServiceProfilesPagination": { - "properties": { - "limit": { - "type": "integer", - "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" + "description": "Array of contact emails\n" }, - "offset": { - "type": "integer", - "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" - } - }, - "type": "object" - }, - "equinix:fabric/getServiceProfilesSort:getServiceProfilesSort": { - "properties": { - "direction": { + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumChangeLog:getServiceProfilesDatumChangeLog" + }, + "description": "Captures connection lifecycle change information\n" + }, + "customFields": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumCustomField:getServiceProfilesDatumCustomField" + }, + "description": "Custom Fields\n" + }, + "description": { "type": "string", - "description": "The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC\n" + "description": "User-provided service description\n" }, - "property": { + "href": { "type": "string", - "description": "The property name to use in sorting. One of [/name /uuid /state /location/metroCode /location/metroName /package/code /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime\n" - } - }, - "type": "object" - }, - "equinix:fabric/notificationsType:NotificationsType": { - "type": "string", - "enum": [ - { - "name": "All", - "value": "ALL" + "description": "Service Profile URI response attribute\n" }, - { - "name": "ConnectionApproval", - "value": "CONNECTION_APPROVAL" + "marketingInfos": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumMarketingInfo:getServiceProfilesDatumMarketingInfo" + }, + "description": "Marketing Info\n" }, - { - "name": "SalesNotifications", - "value": "SALES_REP_NOTIFICATIONS" + "metros": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumMetro:getServiceProfilesDatumMetro" + }, + "description": "Access point config information\n" }, - { - "name": "Notifications", - "value": "NOTIFICATIONS" - } - ] - }, - "equinix:fabric/profileAccessPointType:ProfileAccessPointType": { - "type": "string", - "enum": [ - { - "name": "Colo", - "description": "Colocation", - "value": "COLO" + "name": { + "type": "string", + "description": "Customer-assigned service profile name\n" }, - { - "name": "VD", - "description": "Virtual Device", - "value": "VD" - } - ] - }, - "equinix:fabric/profileState:ProfileState": { - "type": "string", - "enum": [ - { - "name": "Active", - "value": "ACTIVE" + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumNotification:getServiceProfilesDatumNotification" + }, + "description": "Preferences for notifications on connection configuration or status changes\n" }, - { - "name": "PendingApproval", - "value": "PENDING_APPROVAL" + "ports": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumPort:getServiceProfilesDatumPort" + }, + "description": "Ports\n" }, - { - "name": "Deleted", - "value": "DELETED" + "projects": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumProject:getServiceProfilesDatumProject" + }, + "description": "Project information\n" }, - { - "name": "Rejected", - "value": "REJECTED" - } - ] - }, - "equinix:fabric/profileType:ProfileType": { - "type": "string", - "enum": [ - { - "name": "L2Profile", - "value": "L2_PROFILE" + "selfProfile": { + "type": "boolean", + "description": "Self Profile indicating if the profile is created for customer's self use\n" }, - { - "name": "L3Profile", - "value": "L3_PROFILE" - } - ] - }, - "equinix:fabric/profileVisibility:ProfileVisibility": { - "type": "string", - "enum": [ - { - "name": "Public", - "value": "PUBLIC" + "state": { + "type": "string", + "description": "Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED\n" }, - { - "name": "Private", - "value": "PRIVATE" - } - ] - }, - "equinix:fabric/serviceTokenType:ServiceTokenType": { - "type": "string", - "enum": [ - { - "name": "VCToken", - "value": "VC_TOKEN" - } - ] - }, - "equinix:index/metro:Metro": { - "type": "string", - "enum": [ - { - "name": "Amsterdam", - "value": "AM" + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Tags attached to the connection\n" }, - { - "name": "Ashburn", - "value": "DC" + "type": { + "type": "string", + "description": "Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE, IA_PROFILE\n" }, - { - "name": "Atlanta", - "value": "AT" + "uuid": { + "type": "string", + "description": "Equinix assigned service profile identifier\n" }, - { - "name": "Barcelona", - "value": "BA" + "viewPoint": { + "type": "string", + "description": "Flips view between buyer and seller representation. Available values : aSide, zSide. Default value : aSide\n" }, - { - "name": "Bogota", - "value": "BG" + "virtualDevices": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumVirtualDevice:getServiceProfilesDatumVirtualDevice" + }, + "description": "Virtual Devices\n" }, - { - "name": "Bordeaux", - "value": "BX" + "visibility": { + "type": "string", + "description": "Service profile visibility - PUBLIC, PRIVATE\n" + } + }, + "type": "object", + "required": [ + "accessPointTypeConfigs", + "accounts", + "allowedEmails", + "changeLogs", + "customFields", + "description", + "href", + "marketingInfos", + "metros", + "name", + "notifications", + "ports", + "projects", + "selfProfile", + "state", + "tags", + "type", + "uuid", + "viewPoint", + "virtualDevices", + "visibility" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfig:getServiceProfilesDatumAccessPointTypeConfig": { + "properties": { + "allowBandwidthAutoApproval": { + "type": "boolean", + "description": "Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller\n" }, - { - "name": "Boston", - "value": "BO" + "allowBandwidthUpgrade": { + "type": "boolean", + "description": "Availability of a bandwidth upgrade. The default is false\n" }, - { - "name": "Brussels", - "value": "BL" + "allowCustomBandwidth": { + "type": "boolean", + "description": "Setting to enable or disable the ability of the buyer to customize the bandwidth\n" }, - { - "name": "Calgary", - "value": "CL" + "allowRemoteConnections": { + "type": "boolean", + "description": "Setting to allow or prohibit remote connections to the service profile\n" }, - { - "name": "Canberra", - "value": "CA" + "apiConfig": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigApiConfig:getServiceProfilesDatumAccessPointTypeConfigApiConfig", + "description": "Api configuration details\n" }, - { - "name": "Chicago", - "value": "CH" + "authenticationKey": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey:getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey", + "description": "Authentication key details\n" }, - { - "name": "Dallas", - "value": "DA" + "bandwidthAlertThreshold": { + "type": "number", + "description": "Percentage of port bandwidth at which an allocation alert is generated\n" }, - { - "name": "Denver", - "value": "DE" + "connectionLabel": { + "type": "string", + "description": "Custom name for Connection\n" }, - { - "name": "Dubai", - "value": "DX" + "connectionRedundancyRequired": { + "type": "boolean", + "description": "Mandate redundant connections\n" }, - { - "name": "Dublin", - "value": "DB" + "enableAutoGenerateServiceKey": { + "type": "boolean", + "description": "Enable auto generate service key\n" }, - { - "name": "Frankfurt", - "value": "FR" + "linkProtocolConfig": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig:getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig", + "description": "Link protocol configuration details\n" }, - { - "name": "Geneva", - "value": "GV" + "supportedBandwidths": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "Supported bandwidths\n" }, - { - "name": "Hamburg", - "value": "HH" + "type": { + "type": "string", + "description": "Type of access point type config - VD, COLO\n" }, - { - "name": "Helsinki", - "value": "HE" + "uuid": { + "type": "string", + "description": "Colo/Port Uuid\n" + } + }, + "type": "object", + "required": [ + "type", + "uuid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigApiConfig:getServiceProfilesDatumAccessPointTypeConfigApiConfig": { + "properties": { + "allowOverSubscription": { + "type": "boolean", + "description": "Setting showing that oversubscription support is available (true) or not (false). The default is false\n" }, - { - "name": "HongKong", - "value": "HK" + "apiAvailable": { + "type": "boolean", + "description": "Indicates if it's possible to establish connections based on the given service profile using the Equinix Fabric API.\n" }, - { - "name": "Istanbul", - "value": "IL" + "bandwidthFromApi": { + "type": "boolean", + "description": "Indicates if the connection bandwidth can be obtained directly from the cloud service provider.\n" }, - { - "name": "Kamloops", - "value": "KA" + "equinixManagedPort": { + "type": "boolean", + "description": "Setting indicating that the port is managed by Equinix (true) or not (false)\n" }, - { - "name": "Lisbon", - "value": "LS" + "equinixManagedVlan": { + "type": "boolean", + "description": "Setting indicating that the VLAN is managed by Equinix (true) or not (false)\n" }, - { - "name": "London", - "value": "LD" + "integrationId": { + "type": "string", + "description": "A unique identifier issued during onboarding and used to integrate the customer's service profile with the Equinix Fabric API.\n" }, - { - "name": "LosAngeles", - "value": "LA" + "overSubscriptionLimit": { + "type": "integer", + "description": "Port bandwidth multiplier that determines the total bandwidth that can be allocated to users creating connections to your services. For example, a 10 Gbps port combined with an overSubscriptionLimit parameter value of 10 allows your subscribers to create connections with a total bandwidth of 100 Gbps.\n" + } + }, + "type": "object" + }, + "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey:getServiceProfilesDatumAccessPointTypeConfigAuthenticationKey": { + "properties": { + "description": { + "type": "string", + "description": "Description of authorization key\n" }, - { - "name": "Madrid", - "value": "MD" - }, - { - "name": "Manchester", - "value": "MA" - }, - { - "name": "Melbourne", - "value": "ME" - }, - { - "name": "MexicoCity", - "value": "MX" - }, - { - "name": "Miami", - "value": "MI" - }, - { - "name": "Milan", - "value": "ML" - }, - { - "name": "Montreal", - "value": "MT" - }, - { - "name": "Mumbai", - "value": "MB" - }, - { - "name": "Munich", - "value": "MU" - }, - { - "name": "NewYork", - "value": "NY" - }, - { - "name": "Osaka", - "value": "OS" - }, - { - "name": "Paris", - "value": "PA" - }, - { - "name": "Perth", - "value": "PE" - }, - { - "name": "Philadelphia", - "value": "PH" - }, - { - "name": "RioDeJaneiro", - "value": "RJ" - }, - { - "name": "SaoPaulo", - "value": "SP" - }, - { - "name": "Seattle", - "value": "SE" - }, - { - "name": "Seoul", - "value": "SL" - }, - { - "name": "SiliconValley", - "value": "SV" - }, - { - "name": "Singapore", - "value": "SG" - }, - { - "name": "Sofia", - "value": "SO" - }, - { - "name": "Stockholm", - "value": "SK" - }, - { - "name": "Sydney", - "value": "SY" - }, - { - "name": "Tokyo", - "value": "TY" - }, - { - "name": "Toronto", - "value": "TR" - }, - { - "name": "Vancouver", - "value": "VA" - }, - { - "name": "Warsaw", - "value": "WA" - }, - { - "name": "Winnipeg", - "value": "WI" + "label": { + "type": "string", + "description": "Name of the parameter that must be provided to authorize the connection.\n" }, - { - "name": "Zurich", - "value": "ZH" - } - ] - }, - "equinix:metal/DeviceBehavior:DeviceBehavior": { - "properties": { - "allowChanges": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of attributes that are allowed to change without recreating the instance. Supported attributes: `custom_data`, `user_data`\n" + "required": { + "type": "boolean", + "description": "Requirement to configure an authentication key.\n" } }, "type": "object" }, - "equinix:metal/DeviceIpAddress:DeviceIpAddress": { + "equinix:fabric/getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig:getServiceProfilesDatumAccessPointTypeConfigLinkProtocolConfig": { "properties": { - "cidr": { - "type": "integer", - "description": "CIDR suffix for IP block assigned to this device\n" - }, - "reservationIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "IDs of reservations to pick the blocks from\n" + "encapsulation": { + "type": "string", + "description": "Data frames encapsulation standard.UNTAGGED - Untagged encapsulation for EPL connections. DOT1Q - DOT1Q encapsulation standard. QINQ - QINQ encapsulation standard.\n" }, - "type": { + "encapsulationStrategy": { "type": "string", - "description": "one of public*ipv4,private*ipv4,public_ipv6\n" + "description": "Additional tagging information required by the seller profile.\n" + }, + "reuseVlanSTag": { + "type": "boolean", + "description": "Automatically accept subsequent DOT1Q to QINQ connections that use the same authentication key. These connections will have the same VLAN S-tag assigned as the initial connection.\n" } }, - "type": "object", - "required": [ - "type" - ] + "type": "object" }, - "equinix:metal/DeviceNetwork:DeviceNetwork": { + "equinix:fabric/getServiceProfilesDatumAccount:getServiceProfilesDatumAccount": { "properties": { - "address": { + "accountName": { "type": "string", - "description": "IPv4 or IPv6 address string\n" + "description": "Legal name of the accountholder.\n" }, - "cidr": { + "accountNumber": { "type": "integer", - "description": "CIDR suffix for IP address block to be assigned, i.e. amount of addresses\n" + "description": "Equinix-assigned account number.\n" }, - "family": { + "globalCustId": { + "type": "string", + "description": "Equinix-assigned ID of the subscriber's parent organization.\n" + }, + "globalOrgId": { + "type": "string", + "description": "Equinix-assigned ID of the subscriber's parent organization.\n" + }, + "globalOrganizationName": { + "type": "string", + "description": "Equinix-assigned name of the subscriber's parent organization.\n" + }, + "orgId": { "type": "integer", - "description": "IP version - \"4\" or \"6\"\n" + "description": "Equinix-assigned ID of the subscriber's organization.\n" }, - "gateway": { + "organizationName": { "type": "string", - "description": "Address of router\n" + "description": "Equinix-assigned name of the subscriber's organization.\n" }, - "public": { - "type": "boolean", - "description": "Whether the address is routable from the Internet\n" + "ucmId": { + "type": "string", + "description": "Enterprise datastore id\n" } }, "type": "object", + "required": [ + "accountName", + "accountNumber", + "globalCustId", + "globalOrgId", + "globalOrganizationName", + "orgId", + "organizationName", + "ucmId" + ], "language": { "nodejs": { - "requiredOutputs": [ - "address", - "cidr", - "family", - "gateway", - "public" - ] + "requiredInputs": [] } } }, - "equinix:metal/DevicePort:DevicePort": { + "equinix:fabric/getServiceProfilesDatumChangeLog:getServiceProfilesDatumChangeLog": { "properties": { - "bonded": { - "type": "boolean", - "description": "Whether this port is part of a bond in bonded network setup\n" + "createdBy": { + "type": "string", + "description": "Created by User Key\n" }, - "id": { + "createdByEmail": { "type": "string", - "description": "The ID of the device\n" + "description": "Created by User Email Address\n" }, - "mac": { + "createdByFullName": { "type": "string", - "description": "MAC address assigned to the port\n" + "description": "Created by User Full Name\n" }, - "name": { + "createdDateTime": { "type": "string", - "description": "Name of the port (e.g. eth0, or bond0)\n" + "description": "Created by Date and Time\n" }, - "type": { + "deletedBy": { "type": "string", - "description": "One of [private_ipv4, public_ipv4, public_ipv6]\n" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "bonded", - "id", - "mac", - "name", - "type" - ] - } - } - }, - "equinix:metal/DeviceReinstall:DeviceReinstall": { - "properties": { - "deprovisionFast": { - "type": "boolean", - "description": "Whether the OS disk should be filled with `00h` bytes before reinstall\n" + "description": "Deleted by User Key\n" }, - "enabled": { - "type": "boolean", - "description": "Whether the device should be reinstalled instead of destroyed\n" - }, - "preserveData": { - "type": "boolean", - "description": "Whether the non-OS disks should be kept or wiped during reinstall\n" - } - }, - "type": "object" - }, - "equinix:metal/GatewayTimeouts:GatewayTimeouts": { - "properties": { - "delete": { + "deletedByEmail": { "type": "string", - "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" - } - }, - "type": "object" - }, - "equinix:metal/InterconnectionPort:InterconnectionPort": { - "properties": { - "id": { - "type": "string" + "description": "Deleted by User Email Address\n" }, - "linkStatus": { - "type": "string" + "deletedByFullName": { + "type": "string", + "description": "Deleted by User Full Name\n" }, - "name": { - "type": "string" + "deletedDateTime": { + "type": "string", + "description": "Deleted by Date and Time\n" }, - "role": { - "type": "string" + "updatedBy": { + "type": "string", + "description": "Updated by User Key\n" }, - "speed": { - "type": "integer" + "updatedByEmail": { + "type": "string", + "description": "Updated by User Email Address\n" }, - "status": { - "type": "string" + "updatedByFullName": { + "type": "string", + "description": "Updated by User Full Name\n" }, - "virtualCircuitIds": { - "type": "array", - "items": { - "type": "string" - } + "updatedDateTime": { + "type": "string", + "description": "Updated by Date and Time\n" } }, "type": "object", "required": [ - "id", - "linkStatus", - "name", - "role", - "speed", - "status", - "virtualCircuitIds" - ] + "createdBy", + "createdByEmail", + "createdByFullName", + "createdDateTime", + "deletedBy", + "deletedByEmail", + "deletedByFullName", + "deletedDateTime", + "updatedBy", + "updatedByEmail", + "updatedByFullName", + "updatedDateTime" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "equinix:metal/InterconnectionServiceToken:InterconnectionServiceToken": { + "equinix:fabric/getServiceProfilesDatumCustomField:getServiceProfilesDatumCustomField": { "properties": { - "expiresAt": { - "type": "string" + "captureInEmail": { + "type": "boolean", + "description": "Required field\n" }, - "id": { - "type": "string" + "dataType": { + "type": "string", + "description": "Data type\n" }, - "maxAllowedSpeed": { - "type": "string" + "description": { + "type": "string", + "description": "Description\n" }, - "role": { - "type": "string" + "label": { + "type": "string", + "description": "Label\n" }, - "state": { - "type": "string" + "options": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Options\n" }, - "type": { - "type": "string" + "required": { + "type": "boolean", + "description": "Required field\n" } }, "type": "object", "required": [ - "expiresAt", - "id", - "maxAllowedSpeed", - "role", - "state", - "type" - ] + "dataType", + "label", + "required" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } }, - "equinix:metal/OrganizationAddress:OrganizationAddress": { + "equinix:fabric/getServiceProfilesDatumMarketingInfo:getServiceProfilesDatumMarketingInfo": { "properties": { - "address": { + "logo": { "type": "string", - "description": "Postal address.\n" + "description": "Logo\n" }, - "city": { - "type": "string", - "description": "City name.\n" + "processSteps": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumMarketingInfoProcessStep:getServiceProfilesDatumMarketingInfoProcessStep" + }, + "description": "Process Step\n" }, - "country": { + "promotion": { + "type": "boolean", + "description": "Promotion\n" + } + }, + "type": "object" + }, + "equinix:fabric/getServiceProfilesDatumMarketingInfoProcessStep:getServiceProfilesDatumMarketingInfoProcessStep": { + "properties": { + "description": { "type": "string", - "description": "Two letter country code (ISO 3166-1 alpha-2), e.g. US.\n" + "description": "Description\n" }, - "state": { + "subTitle": { "type": "string", - "description": "State name.\n" + "description": "Sub Title\n" }, - "zipCode": { + "title": { "type": "string", - "description": "Zip Code.\n" + "description": "Title\n" } }, - "type": "object", - "required": [ - "address", - "city", - "country", - "zipCode" - ], - "language": { - "nodejs": { - "requiredOutputs": [ - "address", - "city", - "country", - "state", - "zipCode" - ] - } - } + "type": "object" }, - "equinix:metal/ProjectBgpConfig:ProjectBgpConfig": { + "equinix:fabric/getServiceProfilesDatumMetro:getServiceProfilesDatumMetro": { "properties": { - "asn": { - "type": "integer", - "description": "Autonomous System Number for local BGP deployment.\n" + "code": { + "type": "string", + "description": "Metro Code - Example SV\n" }, - "deploymentType": { + "displayName": { "type": "string", - "description": "`local` or `global`, the `local` is likely to be usable immediately, the `global` will need to be reviewed by Equinix Metal engineers.\n" + "description": "Display Name\n" }, - "maxPrefix": { - "type": "integer", - "description": "The maximum number of route filters allowed per server.\n" + "ibxs": { + "type": "array", + "items": { + "type": "string" + }, + "description": "IBX- Equinix International Business Exchange list\n" }, - "md5": { + "inTrail": { + "type": "boolean", + "description": "In Trail\n" + }, + "name": { "type": "string", - "description": "Password for BGP session in plaintext (not a checksum).\n", - "secret": true + "description": "Metro Name\n" }, - "status": { + "sellerRegions": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Seller Regions\n" + } + }, + "type": "object" + }, + "equinix:fabric/getServiceProfilesDatumNotification:getServiceProfilesDatumNotification": { + "properties": { + "emails": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of contact emails\n" + }, + "sendInterval": { "type": "string", - "description": "status of BGP configuration in the project.\n" + "description": "Send interval\n" + }, + "type": { + "type": "string", + "description": "Notification Type - ALL,CONNECTION_APPROVAL,SALES_REP_NOTIFICATIONS, NOTIFICATIONS\n" } }, "type": "object", "required": [ - "asn", - "deploymentType" + "emails", + "type" ], "language": { "nodejs": { - "requiredOutputs": [ - "asn", - "deploymentType", - "maxPrefix", - "status" - ] + "requiredInputs": [] } } }, - "equinix:metal/SpotMarketRequestInstanceParameters:SpotMarketRequestInstanceParameters": { + "equinix:fabric/getServiceProfilesDatumPort:getServiceProfilesDatumPort": { "properties": { - "alwaysPxe": { - "type": "boolean" + "crossConnectId": { + "type": "string", + "description": "Cross Connect Id\n" }, - "billingCycle": { - "type": "string" + "location": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumPortLocation:getServiceProfilesDatumPortLocation", + "description": "Colo/Port Location\n" }, - "customdata": { - "type": "string" + "sellerRegion": { + "type": "string", + "description": "Seller Region\n" }, - "description": { - "type": "string" + "sellerRegionDescription": { + "type": "string", + "description": "Seller Region details\n" }, - "features": { - "type": "array", - "items": { - "type": "string" - } + "type": { + "type": "string", + "description": "Colo/Port Type\n" }, - "hostname": { - "type": "string" + "uuid": { + "type": "string", + "description": "Colo/Port Uuid\n" + } + }, + "type": "object", + "required": [ + "type", + "uuid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfilesDatumPortLocation:getServiceProfilesDatumPortLocation": { + "properties": { + "ibx": { + "type": "string", + "description": "IBX Code\n" }, - "ipxeScriptUrl": { - "type": "string" + "metroCode": { + "type": "string", + "description": "Access point metro code\n" }, - "locked": { - "type": "boolean", - "description": "Blocks deletion of the SpotMarketRequest device until the lock is disabled.\n" + "metroName": { + "type": "string", + "description": "Access point metro name\n" }, - "operatingSystem": { - "type": "string" + "region": { + "type": "string", + "description": "Access point region\n" + } + }, + "type": "object", + "required": [ + "ibx", + "metroCode", + "metroName", + "region" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfilesDatumProject:getServiceProfilesDatumProject": { + "properties": { + "href": { + "type": "string", + "description": "Unique Resource URL\n" }, - "plan": { - "type": "string" + "projectId": { + "type": "string", + "description": "Project Id\n" + } + }, + "type": "object", + "required": [ + "href", + "projectId" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfilesDatumVirtualDevice:getServiceProfilesDatumVirtualDevice": { + "properties": { + "interfaceUuid": { + "type": "string", + "description": "Device Interface Uuid\n" }, - "projectSshKeys": { - "type": "array", - "items": { - "type": "string" - } + "location": { + "$ref": "#/types/equinix:fabric/getServiceProfilesDatumVirtualDeviceLocation:getServiceProfilesDatumVirtualDeviceLocation", + "description": "Device Location\n" }, - "tags": { - "type": "array", - "items": { - "type": "string" - } + "type": { + "type": "string", + "description": "Virtual Device Type\n" }, - "terminationTime": { - "type": "string" + "uuid": { + "type": "string", + "description": "Virtual Device Uuid\n" + } + }, + "type": "object", + "required": [ + "type", + "uuid" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:fabric/getServiceProfilesDatumVirtualDeviceLocation:getServiceProfilesDatumVirtualDeviceLocation": { + "properties": { + "ibx": { + "type": "string", + "description": "IBX Code\n" }, - "termintationTime": { + "metroCode": { "type": "string", - "deprecationMessage": "Use instance_parameters.termination_time instead" + "description": "Access point metro code\n" }, - "userSshKeys": { - "type": "array", - "items": { - "type": "string" - } + "metroName": { + "type": "string", + "description": "Access point metro name\n" }, - "userdata": { - "type": "string" + "region": { + "type": "string", + "description": "Access point region\n" } }, "type": "object", "required": [ - "billingCycle", - "hostname", - "operatingSystem", - "plan" + "ibx", + "metroCode", + "metroName", + "region" ], "language": { "nodejs": { - "requiredOutputs": [ - "billingCycle", - "hostname", - "operatingSystem", - "plan", - "terminationTime", - "termintationTime" - ] + "requiredInputs": [] } } }, - "equinix:metal/billingCycle:BillingCycle": { - "type": "string", - "enum": [ - { - "name": "Hourly", - "value": "hourly" + "equinix:fabric/getServiceProfilesFilter:getServiceProfilesFilter": { + "properties": { + "operator": { + "type": "string", + "description": "Operators to use on your filtered field with the values given. One of [=]\n" }, - { - "name": "Monthly", - "value": "monthly" + "property": { + "type": "string", + "description": "Property to apply operator and values to. One of [/name /uuid /state /metros/code /visibility /type /project/projectId]\n" + }, + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The values that you want to apply the property+operator combination to in order to filter your data search\n" } + }, + "type": "object", + "required": [ + "operator", + "property", + "values" ] }, - "equinix:metal/facility:Facility": { - "description": "See https://deploy.equinix.com/developers/api/metal/#tag/Facilities/operation/findFacilities", + "equinix:fabric/getServiceProfilesPagination:getServiceProfilesPagination": { + "properties": { + "limit": { + "type": "integer", + "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" + }, + "offset": { + "type": "integer", + "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" + } + }, + "type": "object" + }, + "equinix:fabric/getServiceProfilesSort:getServiceProfilesSort": { + "properties": { + "direction": { + "type": "string", + "description": "The sorting direction. Can be one of: [DESC, ASC], Defaults to DESC\n" + }, + "property": { + "type": "string", + "description": "The property name to use in sorting. One of [/name /uuid /state /location/metroCode /location/metroName /package/code /changeLog/createdDateTime /changeLog/updatedDateTime]. Defaults to /changeLog/updatedDateTime\n" + } + }, + "type": "object" + }, + "equinix:fabric/notificationsType:NotificationsType": { "type": "string", "enum": [ { - "name": "AM2", - "description": "Amsterdam 2", - "value": "am2" + "name": "All", + "value": "ALL" }, { - "name": "AM6", - "description": "Amsterdam 6", - "value": "am6" + "name": "ConnectionApproval", + "value": "CONNECTION_APPROVAL" }, { - "name": "MA5", - "description": "Manchester 5", - "value": "ma5" + "name": "SalesNotifications", + "value": "SALES_REP_NOTIFICATIONS" }, { - "name": "NRT1", - "description": "Tokio 1", - "value": "nrt1" + "name": "Notifications", + "value": "NOTIFICATIONS" + } + ] + }, + "equinix:fabric/profileAccessPointType:ProfileAccessPointType": { + "type": "string", + "enum": [ + { + "name": "Colo", + "description": "Colocation", + "value": "COLO" }, { - "name": "PA4", - "description": "Paris 4", - "value": "pa4" + "name": "VD", + "description": "Virtual Device", + "value": "VD" + } + ] + }, + "equinix:fabric/profileState:ProfileState": { + "type": "string", + "enum": [ + { + "name": "Active", + "value": "ACTIVE" }, { - "name": "SK2", - "description": "Stockholm 2", - "value": "sk2" + "name": "PendingApproval", + "value": "PENDING_APPROVAL" }, { - "name": "ME2", - "description": "Melbourne 2", - "value": "me2" + "name": "Deleted", + "value": "DELETED" }, { - "name": "HK2", - "description": "Hong Kong 2", - "value": "hk2" + "name": "Rejected", + "value": "REJECTED" + } + ] + }, + "equinix:fabric/profileType:ProfileType": { + "type": "string", + "enum": [ + { + "name": "L2Profile", + "value": "L2_PROFILE" }, { - "name": "TY11", - "description": "Tokyo 11", - "value": "ty11" + "name": "L3Profile", + "value": "L3_PROFILE" + } + ] + }, + "equinix:fabric/profileVisibility:ProfileVisibility": { + "type": "string", + "enum": [ + { + "name": "Public", + "value": "PUBLIC" }, { - "name": "LA4", - "description": "Los Angeles 4", - "value": "la4" + "name": "Private", + "value": "PRIVATE" + } + ] + }, + "equinix:fabric/serviceTokenType:ServiceTokenType": { + "type": "string", + "enum": [ + { + "name": "VCToken", + "value": "VC_TOKEN" + } + ] + }, + "equinix:index/metro:Metro": { + "type": "string", + "enum": [ + { + "name": "Amsterdam", + "value": "AM" }, { - "name": "DA6", - "description": "Dallas 6", - "value": "da6" + "name": "Ashburn", + "value": "DC" }, { - "name": "DA11", - "description": "Dallas 11", - "value": "da11" + "name": "Atlanta", + "value": "AT" }, { - "name": "DA3", - "description": "Dallas 3", - "value": "da3" + "name": "Barcelona", + "value": "BA" }, { - "name": "SP4", - "description": "Sao Paulo 4", - "value": "sp4" + "name": "Bogota", + "value": "BG" }, { - "name": "MT1", - "description": "Montreal 1", - "value": "mt1" + "name": "Bordeaux", + "value": "BX" }, { - "name": "SV16", - "description": "Silicon Valley 16", - "value": "sv16" + "name": "Boston", + "value": "BO" }, { - "name": "SJC1", - "description": "Sunnyvale, CA 1", - "value": "sjc1" + "name": "Brussels", + "value": "BL" }, { - "name": "FRA2", - "description": "Frankfurt 2", - "value": "fra2" + "name": "Calgary", + "value": "CL" }, { - "name": "FRA8", - "description": "Frankfurt 8", - "value": "fr8" + "name": "Canberra", + "value": "CA" }, { - "name": "NY5", - "description": "New York 5", - "value": "ny5" + "name": "Chicago", + "value": "CH" }, { - "name": "NY6", - "description": "New York 6", - "value": "ny6" + "name": "Dallas", + "value": "DA" }, { - "name": "NY7", - "description": "New York 7", - "value": "ny7" + "name": "Denver", + "value": "DE" }, { - "name": "CH3", - "description": "Chicago 3", - "value": "ch3" + "name": "Dubai", + "value": "DX" }, { - "name": "SL1", - "description": "Seoul 1", - "value": "sl1" + "name": "Dublin", + "value": "DB" }, { - "name": "SY5", - "description": "Sydney 5", - "value": "sy5" + "name": "Frankfurt", + "value": "FR" }, { - "name": "OS3", - "description": "Osaka 3", - "value": "os3" + "name": "Geneva", + "value": "GV" }, { - "name": "LD7", - "description": "London 7", - "value": "ld7" + "name": "Hamburg", + "value": "HH" }, { - "name": "DC10", - "description": "Washington DC 10", - "value": "dc10" + "name": "Helsinki", + "value": "HE" }, { - "name": "AMS1", - "description": "Amsterdam 1", - "value": "ams1" + "name": "HongKong", + "value": "HK" }, { - "name": "SG4", - "description": "Singapore 4", - "value": "sg4" + "name": "Istanbul", + "value": "IL" }, { - "name": "SE4", - "description": "Seattle 4", - "value": "se4" + "name": "Kamloops", + "value": "KA" }, { - "name": "SY4", - "description": "Sydney 4", - "value": "sy4" + "name": "Lisbon", + "value": "LS" }, { - "name": "AT4", - "description": "Atlanta 4", - "value": "at4" + "name": "London", + "value": "LD" }, { - "name": "DFW2", - "description": "Dallas 2", - "value": "dfw2" + "name": "LosAngeles", + "value": "LA" }, { - "name": "TR2", - "description": "Toronto", - "value": "tr2" + "name": "Madrid", + "value": "MD" }, { - "name": "DC13", - "description": "Washington DC", - "value": "dc13" + "name": "Manchester", + "value": "MA" }, { - "name": "HE7", - "description": "Helsinki", - "value": "he7" + "name": "Melbourne", + "value": "ME" }, { - "name": "EWR1", - "description": "Parsippany, NJ 1", - "value": "ewr1" + "name": "MexicoCity", + "value": "MX" }, { - "name": "SG5", - "description": "Singapore 5", - "value": "sg5" + "name": "Miami", + "value": "MI" }, { - "name": "SG1", - "description": "Singapore 1", - "value": "sg1" + "name": "Milan", + "value": "ML" }, { - "name": "MD2", - "description": "Madrid 2", - "value": "md2" + "name": "Montreal", + "value": "MT" }, { - "name": "SV15", - "description": "Silicon Valley 15", - "value": "sv15" - } - ] - }, - "equinix:metal/getDeviceBgpNeighborsBgpNeighbor:getDeviceBgpNeighborsBgpNeighbor": { - "properties": { - "addressFamily": { - "type": "integer", - "description": "IP address version, 4 or 6.\n" + "name": "Mumbai", + "value": "MB" }, - "customerAs": { - "type": "integer", - "description": "Local autonomous system number.\n" + { + "name": "Munich", + "value": "MU" }, - "customerIp": { - "type": "string", - "description": "Local used peer IP address.\n" + { + "name": "NewYork", + "value": "NY" }, - "md5Enabled": { - "type": "boolean", - "description": "Whether BGP session is password enabled.\n" + { + "name": "Osaka", + "value": "OS" }, - "md5Password": { - "type": "string", - "description": "BGP session password in plaintext (not a checksum).\n", - "secret": true + { + "name": "Paris", + "value": "PA" }, - "multihop": { - "type": "boolean", - "description": "Whether the neighbor is in EBGP multihop session.\n" + { + "name": "Perth", + "value": "PE" }, - "peerAs": { - "type": "integer", - "description": "Peer AS number (different than customer_as for EBGP).\n" + { + "name": "Philadelphia", + "value": "PH" }, - "peerIps": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Array of IP addresses of this neighbor's peers.\n" + { + "name": "RioDeJaneiro", + "value": "RJ" }, - "routesIns": { - "type": "array", - "items": { - "$ref": "#/types/equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesIn:getDeviceBgpNeighborsBgpNeighborRoutesIn" - }, - "description": "Array of incoming routes.\n" + { + "name": "SaoPaulo", + "value": "SP" }, - "routesOuts": { + { + "name": "Seattle", + "value": "SE" + }, + { + "name": "Seoul", + "value": "SL" + }, + { + "name": "SiliconValley", + "value": "SV" + }, + { + "name": "Singapore", + "value": "SG" + }, + { + "name": "Sofia", + "value": "SO" + }, + { + "name": "Stockholm", + "value": "SK" + }, + { + "name": "Sydney", + "value": "SY" + }, + { + "name": "Tokyo", + "value": "TY" + }, + { + "name": "Toronto", + "value": "TR" + }, + { + "name": "Vancouver", + "value": "VA" + }, + { + "name": "Warsaw", + "value": "WA" + }, + { + "name": "Winnipeg", + "value": "WI" + }, + { + "name": "Zurich", + "value": "ZH" + } + ] + }, + "equinix:metal/DeviceBehavior:DeviceBehavior": { + "properties": { + "allowChanges": { "type": "array", "items": { - "$ref": "#/types/equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesOut:getDeviceBgpNeighborsBgpNeighborRoutesOut" + "type": "string" }, - "description": "Array of outgoing routes in the same format.\n" + "description": "List of attributes that are allowed to change without recreating the instance. Supported attributes: `custom_data`, `user_data`\n" } }, - "type": "object", - "required": [ - "addressFamily", - "customerAs", - "customerIp", - "md5Enabled", - "md5Password", - "multihop", - "peerAs", - "routesIns", - "routesOuts" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "type": "object" }, - "equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesIn:getDeviceBgpNeighborsBgpNeighborRoutesIn": { + "equinix:metal/DeviceIpAddress:DeviceIpAddress": { "properties": { - "exact": { - "type": "boolean", - "description": "(bool) Whether the route is exact.\n" + "cidr": { + "type": "integer", + "description": "CIDR suffix for IP block assigned to this device\n" }, - "route": { - "type": "string", - "description": "CIDR expression of route (IP/mask).\n" - } - }, - "type": "object", - "required": [ - "exact", - "route" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesOut:getDeviceBgpNeighborsBgpNeighborRoutesOut": { - "properties": { - "exact": { - "type": "boolean", - "description": "(bool) Whether the route is exact.\n" + "reservationIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "IDs of reservations to pick the blocks from\n" }, - "route": { + "type": { "type": "string", - "description": "CIDR expression of route (IP/mask).\n" + "description": "one of public*ipv4,private*ipv4,public_ipv6\n" } }, "type": "object", "required": [ - "exact", - "route" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "type" + ] }, - "equinix:metal/getDeviceNetwork:getDeviceNetwork": { + "equinix:metal/DeviceNetwork:DeviceNetwork": { "properties": { "address": { "type": "string", @@ -10436,7 +10754,7 @@ }, "cidr": { "type": "integer", - "description": "Bit length of the network mask of the address\n" + "description": "CIDR suffix for IP address block to be assigned, i.e. amount of addresses\n" }, "family": { "type": "integer", @@ -10452,20 +10770,19 @@ } }, "type": "object", - "required": [ - "address", - "cidr", - "family", - "gateway", - "public" - ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "address", + "cidr", + "family", + "gateway", + "public" + ] } } }, - "equinix:metal/getDevicePort:getDevicePort": { + "equinix:metal/DevicePort:DevicePort": { "properties": { "bonded": { "type": "boolean", @@ -10485,3264 +10802,4352 @@ }, "type": { "type": "string", - "description": "Type of the port (e.g. NetworkPort or NetworkBondPort)\n" + "description": "One of [private_ipv4, public_ipv4, public_ipv6]\n" } }, "type": "object", - "required": [ - "bonded", - "id", - "mac", - "name", - "type" - ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "bonded", + "id", + "mac", + "name", + "type" + ] } } }, - "equinix:metal/getDevicesDevice:getDevicesDevice": { + "equinix:metal/DeviceReinstall:DeviceReinstall": { "properties": { - "accessPrivateIpv4": { - "type": "string", - "description": "The ipv4 private IP assigned to the device\n" + "deprovisionFast": { + "type": "boolean", + "description": "Whether the OS disk should be filled with `00h` bytes before reinstall\n" }, - "accessPublicIpv4": { - "type": "string", - "description": "The ipv4 management IP assigned to the device\n" + "enabled": { + "type": "boolean", + "description": "Whether the device should be reinstalled instead of destroyed\n" }, - "accessPublicIpv6": { + "preserveData": { + "type": "boolean", + "description": "Whether the non-OS disks should be kept or wiped during reinstall\n" + } + }, + "type": "object" + }, + "equinix:metal/GatewayTimeouts:GatewayTimeouts": { + "properties": { + "delete": { "type": "string", - "description": "The ipv6 management IP assigned to the device\n" - }, - "alwaysPxe": { - "type": "boolean" - }, - "billingCycle": { - "type": "string", - "description": "The billing cycle of the device (monthly or hourly)\n" - }, - "description": { - "type": "string", - "description": "Description string for the device\n" - }, - "deviceId": { - "type": "string", - "description": "Device ID\n" - }, - "facility": { - "type": "string", - "description": "The facility where the device is deployed\n", - "deprecationMessage": "Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices" - }, - "hardwareReservationId": { - "type": "string", - "description": "The id of hardware reservation which this device occupies\n" - }, - "hostname": { - "type": "string", - "description": "The device name\n" - }, - "ipxeScriptUrl": { + "description": "A string that can be [parsed as a duration](https://pkg.go.dev/time#ParseDuration) consisting of numbers and unit suffixes, such as \"30s\" or \"2h45m\". Valid time units are \"s\" (seconds), \"m\" (minutes), \"h\" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.\n" + } + }, + "type": "object" + }, + "equinix:metal/InterconnectionPort:InterconnectionPort": { + "properties": { + "id": { "type": "string" }, - "metro": { - "type": "string", - "description": "The metro where the device is deployed\n" + "linkStatus": { + "type": "string" }, - "networkType": { - "type": "string", - "description": "L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded\n" + "name": { + "type": "string" }, - "networks": { - "type": "array", - "items": { - "$ref": "#/types/equinix:metal/getDevicesDeviceNetwork:getDevicesDeviceNetwork" - }, - "description": "The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_metal_device.name.network.2. Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).\n" + "role": { + "type": "string" }, - "operatingSystem": { - "type": "string", - "description": "The operating system running on the device\n" + "speed": { + "type": "integer" }, - "plan": { - "type": "string", - "description": "The hardware config of the device\n" + "status": { + "type": "string" }, - "ports": { + "virtualCircuitIds": { "type": "array", "items": { - "$ref": "#/types/equinix:metal/getDevicesDevicePort:getDevicesDevicePort" - }, - "description": "Ports assigned to the device\n" - }, - "projectId": { - "type": "string", - "description": "ID of project containing the devices. Exactly one of `project_id` and `organization_id` must be set.\n" + "type": "string" + } + } + }, + "type": "object", + "required": [ + "id", + "linkStatus", + "name", + "role", + "speed", + "status", + "virtualCircuitIds" + ] + }, + "equinix:metal/InterconnectionServiceToken:InterconnectionServiceToken": { + "properties": { + "expiresAt": { + "type": "string" }, - "rootPassword": { - "type": "string", - "description": "Root password to the server (if still available)\n", - "secret": true + "id": { + "type": "string" }, - "sosHostname": { - "type": "string", - "description": "The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device\n" + "maxAllowedSpeed": { + "type": "string" }, - "sshKeyIds": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of IDs of SSH keys deployed in the device, can be both user or project SSH keys\n" + "role": { + "type": "string" }, "state": { - "type": "string", - "description": "The state of the device\n" - }, - "storage": { "type": "string" }, - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Tags attached to the device\n" + "type": { + "type": "string" } }, "type": "object", "required": [ - "accessPrivateIpv4", - "accessPublicIpv4", - "accessPublicIpv6", - "alwaysPxe", - "billingCycle", - "description", - "deviceId", - "facility", - "hardwareReservationId", - "hostname", - "ipxeScriptUrl", - "metro", - "networks", - "networkType", - "operatingSystem", - "plan", - "ports", - "projectId", - "rootPassword", - "sosHostname", - "sshKeyIds", + "expiresAt", + "id", + "maxAllowedSpeed", + "role", "state", - "storage", - "tags" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } + "type" + ] }, - "equinix:metal/getDevicesDeviceNetwork:getDevicesDeviceNetwork": { + "equinix:metal/OrganizationAddress:OrganizationAddress": { "properties": { "address": { "type": "string", - "description": "IPv4 or IPv6 address string\n" + "description": "Postal address.\n" }, - "cidr": { - "type": "integer", - "description": "Bit length of the network mask of the address\n" + "city": { + "type": "string", + "description": "City name.\n" }, - "family": { - "type": "integer", - "description": "IP version - \"4\" or \"6\"\n" + "country": { + "type": "string", + "description": "Two letter country code (ISO 3166-1 alpha-2), e.g. US.\n" }, - "gateway": { + "state": { "type": "string", - "description": "Address of router\n" + "description": "State name.\n" }, - "public": { - "type": "boolean", - "description": "Whether the address is routable from the Internet\n" + "zipCode": { + "type": "string", + "description": "Zip Code.\n" } }, "type": "object", "required": [ "address", - "cidr", - "family", - "gateway", - "public" + "city", + "country", + "zipCode" ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "address", + "city", + "country", + "state", + "zipCode" + ] } } }, - "equinix:metal/getDevicesDevicePort:getDevicesDevicePort": { + "equinix:metal/ProjectBgpConfig:ProjectBgpConfig": { "properties": { - "bonded": { - "type": "boolean", - "description": "Whether this port is part of a bond in bonded network setup\n" + "asn": { + "type": "integer", + "description": "Autonomous System Number for local BGP deployment.\n" }, - "id": { + "deploymentType": { "type": "string", - "description": "The ID of the device\n" + "description": "`local` or `global`, the `local` is likely to be usable immediately, the `global` will need to be reviewed by Equinix Metal engineers.\n" }, - "mac": { - "type": "string", - "description": "MAC address assigned to the port\n" + "maxPrefix": { + "type": "integer", + "description": "The maximum number of route filters allowed per server.\n" }, - "name": { + "md5": { "type": "string", - "description": "Name of the port (e.g. eth0, or bond0)\n" + "description": "Password for BGP session in plaintext (not a checksum).\n", + "secret": true }, - "type": { + "status": { "type": "string", - "description": "Type of the port (e.g. NetworkPort or NetworkBondPort)\n" + "description": "status of BGP configuration in the project.\n" } }, "type": "object", "required": [ - "bonded", - "id", - "mac", - "name", - "type" + "asn", + "deploymentType" ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "asn", + "deploymentType", + "maxPrefix", + "status" + ] } } }, - "equinix:metal/getDevicesFilter:getDevicesFilter": { + "equinix:metal/SpotMarketRequestInstanceParameters:SpotMarketRequestInstanceParameters": { "properties": { - "all": { - "type": "boolean", - "description": "If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.\n\nAll fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.\n" - }, - "attribute": { - "type": "string", - "description": "The attribute used to filter. Filter attributes are case-sensitive\n" + "alwaysPxe": { + "type": "boolean" }, - "matchBy": { - "type": "string", - "description": "The type of comparison to apply. One of: `in` , `re`, `substring`, `less_than`, `less_than_or_equal`, `greater_than`, `greater_than_or_equal`. Default is `in`.\n" + "billingCycle": { + "type": "string" }, - "values": { + "customdata": { + "type": "string" + }, + "description": { + "type": "string" + }, + "features": { "type": "array", "items": { "type": "string" - }, - "description": "The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values\n" - } - }, - "type": "object", - "required": [ - "attribute", - "values" - ] - }, - "equinix:metal/getDevicesSort:getDevicesSort": { - "properties": { - "attribute": { - "type": "string", - "description": "The attribute used to sort the results. Sort attributes are case-sensitive\n" - }, - "direction": { - "type": "string", - "description": "Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc\n" - } - }, - "type": "object", - "required": [ - "attribute" - ] - }, - "equinix:metal/getFacilityCapacity:getFacilityCapacity": { - "properties": { - "plan": { - "type": "string", - "description": "Device plan that must be available in selected location.\n" + } }, - "quantity": { - "type": "integer", - "description": "Minimun number of devices that must be available in selected location. Default is `1`.\n" - } - }, - "type": "object", - "required": [ - "plan" - ] - }, - "equinix:metal/getInterconnectionPort:getInterconnectionPort": { - "properties": { - "id": { - "type": "string", - "description": "Port UUID.\n" + "hostname": { + "type": "string" }, - "linkStatus": { - "type": "string", - "description": "Port link status.\n" + "ipxeScriptUrl": { + "type": "string" }, - "name": { - "type": "string", - "description": "Port name.\n" + "locked": { + "type": "boolean", + "description": "Blocks deletion of the SpotMarketRequest device until the lock is disabled.\n" }, - "role": { - "type": "string", - "description": "Port role - primary or secondary.\n" + "operatingSystem": { + "type": "string" }, - "speed": { - "type": "integer", - "description": "Port speed in bits per second.\n" + "plan": { + "type": "string" }, - "status": { - "type": "string", - "description": "Port status.\n" + "projectSshKeys": { + "type": "array", + "items": { + "type": "string" + } }, - "virtualCircuitIds": { + "tags": { "type": "array", "items": { "type": "string" - }, - "description": "List of IDs of virtual cicruits attached to this port.\n" - } - }, - "type": "object", - "required": [ - "id", - "linkStatus", - "name", - "role", - "speed", - "status", - "virtualCircuitIds" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:metal/getInterconnectionServiceToken:getInterconnectionServiceToken": { - "properties": { - "expiresAt": { - "type": "string", - "description": "Expiration date of the service token.\n" + } }, - "id": { - "type": "string", - "description": "Port UUID.\n" + "terminationTime": { + "type": "string" }, - "maxAllowedSpeed": { + "termintationTime": { "type": "string", - "description": "Maximum allowed speed for the service token, string like in the `speed` attribute.\n" + "deprecationMessage": "Use instance_parameters.termination_time instead" }, - "role": { - "type": "string", - "description": "Port role - primary or secondary.\n" + "userSshKeys": { + "type": "array", + "items": { + "type": "string" + } }, - "state": { + "userdata": { "type": "string" - }, - "type": { - "type": "string", - "description": "Token type, `a_side` or `z_side`.\n" } }, "type": "object", "required": [ - "expiresAt", - "id", - "maxAllowedSpeed", - "role", - "state", - "type" + "billingCycle", + "hostname", + "operatingSystem", + "plan" ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "billingCycle", + "hostname", + "operatingSystem", + "plan", + "terminationTime", + "termintationTime" + ] } } }, - "equinix:metal/getMetroCapacity:getMetroCapacity": { - "properties": { - "plan": { - "type": "string", - "description": "Device plan that must be available in selected location.\n" + "equinix:metal/billingCycle:BillingCycle": { + "type": "string", + "enum": [ + { + "name": "Hourly", + "value": "hourly" }, - "quantity": { - "type": "integer", - "description": "Minimum number of devices that must be available in selected location. Default is `1`.\n" + { + "name": "Monthly", + "value": "monthly" } - }, - "type": "object", - "required": [ - "plan" ] }, - "equinix:metal/getOrganizationAddress:getOrganizationAddress": { - "properties": { - "address": { - "type": "string", - "description": "Postal address.\n" + "equinix:metal/facility:Facility": { + "description": "See https://deploy.equinix.com/developers/api/metal/#tag/Facilities/operation/findFacilities", + "type": "string", + "enum": [ + { + "name": "AM2", + "description": "Amsterdam 2", + "value": "am2" }, - "city": { - "type": "string", - "description": "City name.\n" + { + "name": "AM6", + "description": "Amsterdam 6", + "value": "am6" }, - "country": { - "type": "string", - "description": "Two letter country code (ISO 3166-1 alpha-2), e.g. US.\n" + { + "name": "MA5", + "description": "Manchester 5", + "value": "ma5" }, - "state": { - "type": "string", - "description": "State name.\n" + { + "name": "NRT1", + "description": "Tokio 1", + "value": "nrt1" }, - "zipCode": { - "type": "string", - "description": "Zip Code.\n" - } - }, - "type": "object", - "required": [ - "address", - "city", - "country", - "state", - "zipCode" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:metal/getPlansFilter:getPlansFilter": { - "properties": { - "all": { - "type": "boolean", - "description": "If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.\n\nAll fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.\n" + { + "name": "PA4", + "description": "Paris 4", + "value": "pa4" }, - "attribute": { - "type": "string", - "description": "The attribute used to filter. Filter attributes are case-sensitive\n" + { + "name": "SK2", + "description": "Stockholm 2", + "value": "sk2" }, - "matchBy": { - "type": "string", - "description": "The type of comparison to apply. One of: `in` , `re`, `substring`, `less_than`, `less_than_or_equal`, `greater_than`, `greater_than_or_equal`. Default is `in`.\n" + { + "name": "ME2", + "description": "Melbourne 2", + "value": "me2" }, - "values": { - "type": "array", - "items": { - "type": "string" - }, - "description": "The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values\n" - } - }, - "type": "object", - "required": [ - "attribute", - "values" - ] - }, - "equinix:metal/getPlansPlan:getPlansPlan": { - "properties": { - "availableInMetros": { - "type": "array", - "items": { - "type": "string" - }, - "description": "list of metros where the plan is available\n" - }, - "availableIns": { - "type": "array", - "items": { - "type": "string" - }, - "description": "(**Deprecated**) list of facilities where the plan is available\n", - "deprecationMessage": "Use available_in_metros instead. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices" - }, - "class": { - "type": "string", - "description": "plan class\n" - }, - "deploymentTypes": { - "type": "array", - "items": { - "type": "string" - }, - "description": "list of deployment types, e.g. on_demand, spot_market\n" - }, - "description": { - "type": "string", - "description": "description of the plan\n" - }, - "id": { - "type": "string", - "description": "id of the plan\n" - }, - "legacy": { - "type": "boolean", - "description": "flag showing if it's a legacy plan\n" - }, - "line": { - "type": "string", - "description": "plan line, e.g. baremetal\n" - }, - "name": { - "type": "string", - "description": "name of the plan\n" - }, - "pricingHour": { - "type": "number", - "description": "plan hourly price\n" - }, - "pricingMonth": { - "type": "number", - "description": "plan monthly price\n" - }, - "slug": { - "type": "string", - "description": "plan slug\n" - } - }, - "type": "object", - "required": [ - "availableIns", - "availableInMetros", - "class", - "deploymentTypes", - "description", - "id", - "legacy", - "line", - "name", - "pricingHour", - "pricingMonth", - "slug" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:metal/getPlansSort:getPlansSort": { - "properties": { - "attribute": { - "type": "string", - "description": "The attribute used to sort the results. Sort attributes are case-sensitive\n" - }, - "direction": { - "type": "string", - "description": "Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc\n" - } - }, - "type": "object", - "required": [ - "attribute" - ] - }, - "equinix:metal/getProjectBgpConfig:getProjectBgpConfig": { - "properties": { - "asn": { - "type": "integer", - "description": "Autonomous System Number for local BGP deployment.\n" - }, - "deploymentType": { - "type": "string", - "description": "One of `private`, `public`.\n" - }, - "maxPrefix": { - "type": "integer", - "description": "The maximum number of route filters allowed per server.\n" - }, - "md5": { - "type": "string", - "description": "Password for BGP session in plaintext (not a checksum).\n" - }, - "status": { - "type": "string", - "description": "Status of BGP configuration in the project.\n" - } - }, - "type": "object", - "required": [ - "asn", - "deploymentType", - "maxPrefix", - "md5", - "status" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:metal/ipBlockType:IpBlockType": { - "type": "string", - "enum": [ { - "name": "GlobalIPv4", - "value": "global_ipv4" + "name": "HK2", + "description": "Hong Kong 2", + "value": "hk2" }, { - "name": "PublicIPv4", - "value": "public_ipv4" - } - ] - }, - "equinix:metal/networkType:NetworkType": { - "type": "string", - "enum": [ - { - "name": "Layer3", - "value": "layer3" + "name": "TY11", + "description": "Tokyo 11", + "value": "ty11" }, { - "name": "Layer2Individual", - "value": "layer2-individual" + "name": "LA4", + "description": "Los Angeles 4", + "value": "la4" }, { - "name": "Layer2Bonded", - "value": "layer2-bonded" + "name": "DA6", + "description": "Dallas 6", + "value": "da6" }, { - "name": "Hybrid", - "value": "hybrid" - } - ] - }, - "equinix:metal/operatingSystem:OperatingSystem": { - "description": "See https://deploy.equinix.com/developers/api/metal/#tag/OperatingSystems/operation/findOperatingSystems", - "type": "string", - "enum": [ + "name": "DA11", + "description": "Dallas 11", + "value": "da11" + }, { - "name": "Alma8", - "value": "alma_8" + "name": "DA3", + "description": "Dallas 3", + "value": "da3" }, { - "name": "Alma9", - "value": "alma_9" + "name": "SP4", + "description": "Sao Paulo 4", + "value": "sp4" }, { - "name": "Alpine3", - "value": "alpine_3" + "name": "MT1", + "description": "Montreal 1", + "value": "mt1" }, { - "name": "CentOS6", - "value": "centos_6" + "name": "SV16", + "description": "Silicon Valley 16", + "value": "sv16" }, { - "name": "CentOS7", - "value": "centos_7" + "name": "SJC1", + "description": "Sunnyvale, CA 1", + "value": "sjc1" }, { - "name": "CentOS8", - "value": "centos_8" + "name": "FRA2", + "description": "Frankfurt 2", + "value": "fra2" }, { - "name": "CoreOSAlpha", - "value": "coreos_alpha" + "name": "FRA8", + "description": "Frankfurt 8", + "value": "fr8" }, { - "name": "CoreOSBeta", - "value": "coreos_beta" + "name": "NY5", + "description": "New York 5", + "value": "ny5" }, { - "name": "CoreOSStable", - "value": "coreos_stable" + "name": "NY6", + "description": "New York 6", + "value": "ny6" }, { - "name": "CustomIPXE", - "value": "custom_ipxe" + "name": "NY7", + "description": "New York 7", + "value": "ny7" }, { - "name": "Debian10", - "value": "debian_10" + "name": "CH3", + "description": "Chicago 3", + "value": "ch3" }, { - "name": "Debian11", - "value": "debian_11" + "name": "SL1", + "description": "Seoul 1", + "value": "sl1" }, { - "name": "Debian7", - "value": "debian_7" + "name": "SY5", + "description": "Sydney 5", + "value": "sy5" }, { - "name": "Debian8", - "value": "debian_8" - }, - { - "name": "Debian9", - "value": "debian_9" - }, - { - "name": "Fedora31", - "value": "fedora_31" + "name": "OS3", + "description": "Osaka 3", + "value": "os3" }, { - "name": "Fedora34", - "value": "fedora_34" + "name": "LD7", + "description": "London 7", + "value": "ld7" }, { - "name": "FlatcarAlpha", - "value": "flatcar_alpha" + "name": "DC10", + "description": "Washington DC 10", + "value": "dc10" }, { - "name": "FlatcarBeta", - "value": "flatcar_beta" + "name": "AMS1", + "description": "Amsterdam 1", + "value": "ams1" }, { - "name": "FlatcarEdge", - "value": "flatcar_edge" + "name": "SG4", + "description": "Singapore 4", + "value": "sg4" }, { - "name": "FlatcarLTS", - "value": "flatcar_lts" + "name": "SE4", + "description": "Seattle 4", + "value": "se4" }, { - "name": "FlatcarStable", - "value": "flatcar_stable" + "name": "SY4", + "description": "Sydney 4", + "value": "sy4" }, { - "name": "FreeBSD10_3", - "value": "freebsd_10_3" + "name": "AT4", + "description": "Atlanta 4", + "value": "at4" }, { - "name": "FreeBSD10_4", - "value": "freebsd_10_4" + "name": "DFW2", + "description": "Dallas 2", + "value": "dfw2" }, { - "name": "FreeBSD11_0", - "value": "freebsd_11_0" + "name": "TR2", + "description": "Toronto", + "value": "tr2" }, { - "name": "FreeBSD11_1", - "value": "freebsd_11_1" + "name": "DC13", + "description": "Washington DC", + "value": "dc13" }, { - "name": "FreeBSD11_2", - "value": "freebsd_11_2" + "name": "HE7", + "description": "Helsinki", + "value": "he7" }, { - "name": "FreeBSD11_3", - "value": "freebsd_11_3" + "name": "EWR1", + "description": "Parsippany, NJ 1", + "value": "ewr1" }, { - "name": "FreeBSD11_4", - "value": "freebsd_11_4" + "name": "SG5", + "description": "Singapore 5", + "value": "sg5" }, { - "name": "FreeBSD12Testing", - "value": "freebsd_12_testing" + "name": "SG1", + "description": "Singapore 1", + "value": "sg1" }, { - "name": "FreeBSD12_1", - "value": "freebsd_12_1" + "name": "MD2", + "description": "Madrid 2", + "value": "md2" }, { - "name": "FreeBSD13_0", - "value": "freebsd_13_0" + "name": "SV15", + "description": "Silicon Valley 15", + "value": "sv15" + } + ] + }, + "equinix:metal/getDeviceBgpNeighborsBgpNeighbor:getDeviceBgpNeighborsBgpNeighbor": { + "properties": { + "addressFamily": { + "type": "integer", + "description": "IP address version, 4 or 6.\n" }, - { - "name": "FreeBSD13_1", - "value": "freebsd_13_1" + "customerAs": { + "type": "integer", + "description": "Local autonomous system number.\n" }, - { - "name": "FreeBSD13_testing", - "value": "freebsd_13_testing" + "customerIp": { + "type": "string", + "description": "Local used peer IP address.\n" }, - { - "name": "HookEsxi7", - "value": "hook_esxi7" + "md5Enabled": { + "type": "boolean", + "description": "Whether BGP session is password enabled.\n" }, - { - "name": "NixOS17_03", - "value": "nixos_17_03" + "md5Password": { + "type": "string", + "description": "BGP session password in plaintext (not a checksum).\n", + "secret": true }, - { - "name": "NixOS18_03", - "value": "nixos_18_03" + "multihop": { + "type": "boolean", + "description": "Whether the neighbor is in EBGP multihop session.\n" }, - { - "name": "NixOS19_03", - "value": "nixos_19_03" + "peerAs": { + "type": "integer", + "description": "Peer AS number (different than customer_as for EBGP).\n" }, - { - "name": "NixOS20_09", - "value": "nixos_20_09" + "peerIps": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Array of IP addresses of this neighbor's peers.\n" }, - { - "name": "NixOS21_11", - "value": "nixos_21_11" + "routesIns": { + "type": "array", + "items": { + "$ref": "#/types/equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesIn:getDeviceBgpNeighborsBgpNeighborRoutesIn" + }, + "description": "Array of incoming routes.\n" }, - { - "name": "NixOS22_05", - "value": "nixos_22_05" + "routesOuts": { + "type": "array", + "items": { + "$ref": "#/types/equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesOut:getDeviceBgpNeighborsBgpNeighborRoutesOut" + }, + "description": "Array of outgoing routes in the same format.\n" + } + }, + "type": "object", + "required": [ + "addressFamily", + "customerAs", + "customerIp", + "md5Enabled", + "md5Password", + "multihop", + "peerAs", + "routesIns", + "routesOuts" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesIn:getDeviceBgpNeighborsBgpNeighborRoutesIn": { + "properties": { + "exact": { + "type": "boolean", + "description": "(bool) Whether the route is exact.\n" }, - { - "name": "NixOS22_11", - "value": "nixos_22_11" + "route": { + "type": "string", + "description": "CIDR expression of route (IP/mask).\n" + } + }, + "type": "object", + "required": [ + "exact", + "route" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:metal/getDeviceBgpNeighborsBgpNeighborRoutesOut:getDeviceBgpNeighborsBgpNeighborRoutesOut": { + "properties": { + "exact": { + "type": "boolean", + "description": "(bool) Whether the route is exact.\n" }, - { - "name": "Nixos21_05", - "value": "nixos_21_05" + "route": { + "type": "string", + "description": "CIDR expression of route (IP/mask).\n" + } + }, + "type": "object", + "required": [ + "exact", + "route" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:metal/getDeviceNetwork:getDeviceNetwork": { + "properties": { + "address": { + "type": "string", + "description": "IPv4 or IPv6 address string\n" }, - { - "name": "NutanixCentos", - "value": "nutanix_centos" + "cidr": { + "type": "integer", + "description": "Bit length of the network mask of the address\n" }, - { - "name": "NutanixLTS5_19_1", - "value": "nutanix_lts_5_19_1" + "family": { + "type": "integer", + "description": "IP version - \"4\" or \"6\"\n" }, - { - "name": "NutanixLTS5_20", - "value": "nutanix_lts_5_20" + "gateway": { + "type": "string", + "description": "Address of router\n" }, - { - "name": "OpenSUSE42_3", - "value": "opensuse_42_3" - }, - { - "name": "RHEL7", - "value": "rhel_7" - }, - { - "name": "RHEL8", - "value": "rhel_8" - }, - { - "name": "RHEL9", - "value": "rhel_9" - }, - { - "name": "RancherOS", - "value": "rancher" - }, - { - "name": "Rocky8", - "value": "rocky_8" - }, - { - "name": "Rocky9", - "value": "rocky_9" + "public": { + "type": "boolean", + "description": "Whether the address is routable from the Internet\n" + } + }, + "type": "object", + "required": [ + "address", + "cidr", + "family", + "gateway", + "public" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:metal/getDevicePort:getDevicePort": { + "properties": { + "bonded": { + "type": "boolean", + "description": "Whether this port is part of a bond in bonded network setup\n" }, - { - "name": "SLES12SP3", - "value": "suse_sles12_sp3" + "id": { + "type": "string", + "description": "The ID of the device\n" }, - { - "name": "ScientificLinux6", - "value": "scientific_6" + "mac": { + "type": "string", + "description": "MAC address assigned to the port\n" }, - { - "name": "TalosV1", - "value": "talos_v1" + "name": { + "type": "string", + "description": "Name of the port (e.g. eth0, or bond0)\n" }, - { - "name": "Ubuntu1710", - "value": "ubuntu_17_10" + "type": { + "type": "string", + "description": "Type of the port (e.g. NetworkPort or NetworkBondPort)\n" + } + }, + "type": "object", + "required": [ + "bonded", + "id", + "mac", + "name", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:metal/getDevicesDevice:getDevicesDevice": { + "properties": { + "accessPrivateIpv4": { + "type": "string", + "description": "The ipv4 private IP assigned to the device\n" }, - { - "name": "Ubuntu18_04", - "value": "ubuntu_18_04" + "accessPublicIpv4": { + "type": "string", + "description": "The ipv4 management IP assigned to the device\n" }, - { - "name": "Ubuntu1904", - "value": "ubuntu_19_04" + "accessPublicIpv6": { + "type": "string", + "description": "The ipv6 management IP assigned to the device\n" }, - { - "name": "Ubuntu19_10", - "value": "ubuntu_19_10" + "alwaysPxe": { + "type": "boolean" }, - { - "name": "Ubuntu20_04", - "value": "ubuntu_20_04" + "billingCycle": { + "type": "string", + "description": "The billing cycle of the device (monthly or hourly)\n" }, - { - "name": "Ubuntu20_04_legacy", - "value": "ubuntu_20_04_legacy" + "description": { + "type": "string", + "description": "Description string for the device\n" }, - { - "name": "Ubuntu20_10", - "value": "ubuntu_20_10" + "deviceId": { + "type": "string", + "description": "Device ID\n" }, - { - "name": "Ubuntu2204", - "value": "ubuntu_22_04" + "facility": { + "type": "string", + "description": "The facility where the device is deployed\n", + "deprecationMessage": "Use metro instead of facility. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices" }, - { - "name": "VMWareAlloyVcf", - "value": "vmware_alloy_vcf" + "hardwareReservationId": { + "type": "string", + "description": "The id of hardware reservation which this device occupies\n" }, - { - "name": "VMWareEsxi5_5", - "value": "vmware_esxi_5_5" + "hostname": { + "type": "string", + "description": "The device name\n" }, - { - "name": "VMWareEsxi6_0", - "value": "vmware_esxi_6_0" + "ipxeScriptUrl": { + "type": "string" }, - { - "name": "VMWareEsxi6_5", - "value": "vmware_esxi_6_5" + "metro": { + "type": "string", + "description": "The metro where the device is deployed\n" }, - { - "name": "VMWareEsxi6_7", - "value": "vmware_esxi_6_7" + "networkType": { + "type": "string", + "description": "L2 network type of the device, one oflayer3, hybrid, layer2-individual, layer2-bonded\n" }, - { - "name": "VMWareEsxi6_7_vcf", - "value": "vmware_esxi_6_7_vcf" + "networks": { + "type": "array", + "items": { + "$ref": "#/types/equinix:metal/getDevicesDeviceNetwork:getDevicesDeviceNetwork" + }, + "description": "The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 networks: ublic IPv4 at equinix_metal_device.name.network.0, IPv6 at equinix_metal_device.name.network.1 and private IPv4 at equinix_metal_device.name.network.2. Elastic addresses then stack by type - an assigned public IPv4 will go after the management public IPv4 (to index 1), and will then shift the indices of the IPv6 and private IPv4. Assigned private IPv4 will go after the management private IPv4 (to the end of the network list).\n" }, - { - "name": "VMWareEsxi7_0", - "value": "vmware_esxi_7_0" + "operatingSystem": { + "type": "string", + "description": "The operating system running on the device\n" }, - { - "name": "VMWareEsxi7_0U2a", - "value": "vmware_esxi_7_0U2a" + "plan": { + "type": "string", + "description": "The hardware config of the device\n" }, - { - "name": "VMWareEsxi7_0_vcf", - "value": "vmware_esxi_7_0_vcf" + "ports": { + "type": "array", + "items": { + "$ref": "#/types/equinix:metal/getDevicesDevicePort:getDevicesDevicePort" + }, + "description": "Ports assigned to the device\n" }, - { - "name": "VMWareNsx2_5_0", - "value": "vmware_nsx_2_5_0" + "projectId": { + "type": "string", + "description": "ID of project containing the devices. Exactly one of `project_id` and `organization_id` must be set.\n" }, - { - "name": "VMWareNsx3_0_0", - "value": "vmware_nsx_3_0_0" + "rootPassword": { + "type": "string", + "description": "Root password to the server (if still available)\n", + "secret": true }, - { - "name": "Virtuozzo7", - "value": "virtuozzo_7" + "sosHostname": { + "type": "string", + "description": "The hostname to use for [Serial over SSH](https://deploy.equinix.com/developers/docs/metal/resilience-recovery/serial-over-ssh/) access to the device\n" }, - { - "name": "Windows2012R2", - "value": "windows_2012_r2" + "sshKeyIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of IDs of SSH keys deployed in the device, can be both user or project SSH keys\n" }, - { - "name": "Windows2016", - "value": "windows_2016" + "state": { + "type": "string", + "description": "The state of the device\n" }, - { - "name": "Windows2019", - "value": "windows_2019" + "storage": { + "type": "string" }, - { - "name": "Windows2022", - "value": "windows_2022" - } - ] - }, - "equinix:metal/plan:Plan": { - "description": "See https://deploy.equinix.com/developers/api/metal/#tag/Plans/operation/findPlans", - "type": "string", - "enum": [ - { - "name": "A3LargeX86", - "value": "a3.large.x86" - }, - { - "name": "C2LargeARM", - "value": "c2.large.arm" - }, - { - "name": "C2MediumX86", - "value": "c2.medium.x86" - }, - { - "name": "C3LargeARM", - "value": "c3.large.arm64" - }, - { - "name": "C3MediumX86", - "value": "c3.medium.x86" - }, - { - "name": "C3SmallX86", - "value": "c3.small.x86" - }, - { - "name": "F3LargeX86", - "value": "f3.large.x86" - }, - { - "name": "F3MediumX86", - "value": "f3.medium.x86" - }, - { - "name": "G2LargeX86", - "value": "g2.large.x86" - }, - { - "name": "M2XLargeX86", - "value": "m2.xlarge.x86" - }, - { - "name": "M3LargeX86", - "value": "m3.large.x86" - }, - { - "name": "M3SmallX86", - "value": "m3.small.x86" - }, - { - "name": "N2XLargeX86", - "value": "n2.xlarge.x86" - }, - { - "name": "N3XLargeX86", - "value": "n3.xlarge.x86" - }, - { - "name": "S3XLargeX86", - "value": "s3.xlarge.x86" - }, - { - "name": "T3SmallX86", - "value": "t3.small.x86" - }, - { - "name": "X2XLargeX86", - "value": "x2.xlarge.x86" - }, - { - "name": "X3XLargeX86", - "value": "x3.xlarge.x86" - } - ] - }, - "equinix:networkedge/AclTemplateDeviceDetail:AclTemplateDeviceDetail": { - "properties": { - "aclStatus": { - "type": "string", - "description": "Device ACL provisioning status where template was applied. One of `PROVISIONING`, `PROVISIONED`.\n" - }, - "name": { - "type": "string", - "description": "ACL template name.\n" - }, - "uuid": { - "type": "string", - "description": "Device uuid.\n" + "tags": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Tags attached to the device\n" } }, "type": "object", + "required": [ + "accessPrivateIpv4", + "accessPublicIpv4", + "accessPublicIpv6", + "alwaysPxe", + "billingCycle", + "description", + "deviceId", + "facility", + "hardwareReservationId", + "hostname", + "ipxeScriptUrl", + "metro", + "networks", + "networkType", + "operatingSystem", + "plan", + "ports", + "projectId", + "rootPassword", + "sosHostname", + "sshKeyIds", + "state", + "storage", + "tags" + ], "language": { "nodejs": { - "requiredOutputs": [ - "aclStatus", - "name", - "uuid" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/AclTemplateInboundRule:AclTemplateInboundRule": { + "equinix:metal/getDevicesDeviceNetwork:getDevicesDeviceNetwork": { "properties": { - "description": { - "type": "string", - "description": "Inbound rule description, up to 200 characters.\n" - }, - "dstPort": { - "type": "string", - "description": "Inbound traffic destination ports. Allowed values are a comma separated list of ports, e.g., `20,22,23`, port range, e.g., `1023-1040` or word `any`.\n" - }, - "protocol": { + "address": { "type": "string", - "oneOf": [ - { - "type": "string" - }, - { - "type": "string", - "$ref": "#/types/equinix:networkedge/aclRuleProtocolType:AclRuleProtocolType" - } - ], - "description": "Inbound traffic protocol. One of `IP`, `TCP`, `UDP`.\n" + "description": "IPv4 or IPv6 address string\n" }, - "sequenceNumber": { + "cidr": { "type": "integer", - "description": "Inbound rule sequence number\n" - }, - "sourceType": { - "type": "string", - "description": "Type of traffic source used in a given inbound rule\n", - "deprecationMessage": "Source Type will not be returned" + "description": "Bit length of the network mask of the address\n" }, - "srcPort": { - "type": "string", - "description": "Inbound traffic source ports. Allowed values are a comma separated list of ports, e.g., `20,22,23`, port range, e.g., `1023-1040` or word `any`.\n" + "family": { + "type": "integer", + "description": "IP version - \"4\" or \"6\"\n" }, - "subnet": { + "gateway": { "type": "string", - "description": "Inbound traffic source IP subnet in CIDR format.\n" + "description": "Address of router\n" }, - "subnets": { - "type": "array", - "items": { - "type": "string" - }, - "description": "Inbound traffic source IP subnets in CIDR format.\n", - "deprecationMessage": "Use Subnet instead" + "public": { + "type": "boolean", + "description": "Whether the address is routable from the Internet\n" } }, "type": "object", "required": [ - "dstPort", - "protocol", - "srcPort" + "address", + "cidr", + "family", + "gateway", + "public" ], "language": { "nodejs": { - "requiredOutputs": [ - "dstPort", - "protocol", - "sequenceNumber", - "sourceType", - "srcPort" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/DeviceClusterDetails:DeviceClusterDetails": { + "equinix:metal/getDevicesDevicePort:getDevicesDevicePort": { "properties": { - "clusterId": { - "type": "string", - "description": "The ID of the cluster.\n" + "bonded": { + "type": "boolean", + "description": "Whether this port is part of a bond in bonded network setup\n" }, - "clusterName": { + "id": { "type": "string", - "description": "The name of the cluster device\n" + "description": "The ID of the device\n" }, - "node0": { - "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode0:DeviceClusterDetailsNode0", - "description": "An object that has `node0` configuration. See Cluster Details - Nodes below for more details.\n" + "mac": { + "type": "string", + "description": "MAC address assigned to the port\n" }, - "node1": { - "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode1:DeviceClusterDetailsNode1", - "description": "An object that has `node1` configuration. See Cluster Details - Nodes below for more details.\n" + "name": { + "type": "string", + "description": "Name of the port (e.g. eth0, or bond0)\n" }, - "numOfNodes": { - "type": "integer", - "description": "The number of nodes in the cluster.\n" + "type": { + "type": "string", + "description": "Type of the port (e.g. NetworkPort or NetworkBondPort)\n" } }, "type": "object", "required": [ - "clusterName", - "node0", - "node1" + "bonded", + "id", + "mac", + "name", + "type" ], "language": { "nodejs": { - "requiredOutputs": [ - "clusterId", - "clusterName", - "node0", - "node1", - "numOfNodes" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/DeviceClusterDetailsNode0:DeviceClusterDetailsNode0": { + "equinix:metal/getDevicesFilter:getDevicesFilter": { "properties": { - "licenseFileId": { - "type": "string", - "description": "License file id. This is necessary for Fortinet and Juniper clusters.\n", - "willReplaceOnChanges": true - }, - "licenseToken": { - "type": "string", - "description": "License token. This is necessary for Palo Alto clusters.\n", - "secret": true, - "willReplaceOnChanges": true + "all": { + "type": "boolean", + "description": "If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.\n\nAll fields in the `devices` block defined below can be used as attribute for both `sort` and `filter` blocks.\n" }, - "name": { + "attribute": { "type": "string", - "description": "Device name.\n" + "description": "The attribute used to filter. Filter attributes are case-sensitive\n" }, - "uuid": { + "matchBy": { "type": "string", - "description": "Device unique identifier.\n" + "description": "The type of comparison to apply. One of: `in` , `re`, `substring`, `less_than`, `less_than_or_equal`, `greater_than`, `greater_than_or_equal`. Default is `in`.\n" }, - "vendorConfiguration": { - "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode0VendorConfiguration:DeviceClusterDetailsNode0VendorConfiguration", - "description": "An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.\n", - "willReplaceOnChanges": true + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values\n" } }, "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "name", - "uuid" - ] - } - } + "required": [ + "attribute", + "values" + ] }, - "equinix:networkedge/DeviceClusterDetailsNode0VendorConfiguration:DeviceClusterDetailsNode0VendorConfiguration": { + "equinix:metal/getDevicesSort:getDevicesSort": { "properties": { - "activationKey": { - "type": "string", - "description": "Activation key. This is required for Velocloud clusters.\n", - "secret": true, - "willReplaceOnChanges": true - }, - "adminPassword": { - "type": "string", - "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.\n", - "secret": true, - "willReplaceOnChanges": true - }, - "controller1": { - "type": "string", - "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device.\n", - "willReplaceOnChanges": true - }, - "controllerFqdn": { + "attribute": { "type": "string", - "description": "Controller fqdn. This is required for Velocloud clusters.\n", - "willReplaceOnChanges": true + "description": "The attribute used to sort the results. Sort attributes are case-sensitive\n" }, - "hostname": { + "direction": { "type": "string", - "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.\n", - "willReplaceOnChanges": true - }, - "licenseId": { + "description": "Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc\n" + } + }, + "type": "object", + "required": [ + "attribute" + ] + }, + "equinix:metal/getFacilityCapacity:getFacilityCapacity": { + "properties": { + "plan": { "type": "string", - "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Device plan that must be available in selected location.\n" }, - "licenseKey": { + "quantity": { + "type": "integer", + "description": "Minimun number of devices that must be available in selected location. Default is `1`.\n" + } + }, + "type": "object", + "required": [ + "plan" + ] + }, + "equinix:metal/getInterconnectionPort:getInterconnectionPort": { + "properties": { + "id": { "type": "string", - "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Port UUID.\n" }, - "panoramaAuthKey": { + "linkStatus": { "type": "string", - "description": "Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Port link status.\n" }, - "panoramaIpAddress": { + "name": { "type": "string", - "description": "Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", - "willReplaceOnChanges": true + "description": "Port name.\n" }, - "privateAddress": { + "role": { "type": "string", - "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "willReplaceOnChanges": true + "description": "Port role - primary or secondary.\n" }, - "privateCidrMask": { - "type": "string", - "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "willReplaceOnChanges": true + "speed": { + "type": "integer", + "description": "Port speed in bits per second.\n" }, - "privateGateway": { + "status": { "type": "string", - "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "willReplaceOnChanges": true + "description": "Port status.\n" }, - "rootPassword": { - "type": "string", - "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.\n", - "secret": true, - "willReplaceOnChanges": true + "virtualCircuitIds": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of IDs of virtual cicruits attached to this port.\n" } }, "type": "object", + "required": [ + "id", + "linkStatus", + "name", + "role", + "speed", + "status", + "virtualCircuitIds" + ], "language": { "nodejs": { - "requiredOutputs": [ - "adminPassword" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/DeviceClusterDetailsNode1:DeviceClusterDetailsNode1": { + "equinix:metal/getInterconnectionServiceToken:getInterconnectionServiceToken": { "properties": { - "licenseFileId": { + "expiresAt": { "type": "string", - "description": "License file id. This is necessary for Fortinet and Juniper clusters.\n", - "willReplaceOnChanges": true + "description": "Expiration date of the service token.\n" }, - "licenseToken": { + "id": { "type": "string", - "description": "License token. This is necessary for Palo Alto clusters.\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Port UUID.\n" }, - "name": { + "maxAllowedSpeed": { "type": "string", - "description": "Device name.\n" + "description": "Maximum allowed speed for the service token, string like in the `speed` attribute.\n" }, - "uuid": { + "role": { "type": "string", - "description": "Device unique identifier.\n" + "description": "Port role - primary or secondary.\n" }, - "vendorConfiguration": { - "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode1VendorConfiguration:DeviceClusterDetailsNode1VendorConfiguration", - "description": "An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.\n", - "willReplaceOnChanges": true + "state": { + "type": "string" + }, + "type": { + "type": "string", + "description": "Token type, `a_side` or `z_side`.\n" } }, "type": "object", + "required": [ + "expiresAt", + "id", + "maxAllowedSpeed", + "role", + "state", + "type" + ], "language": { "nodejs": { - "requiredOutputs": [ - "name", - "uuid" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/DeviceClusterDetailsNode1VendorConfiguration:DeviceClusterDetailsNode1VendorConfiguration": { + "equinix:metal/getMetroCapacity:getMetroCapacity": { "properties": { - "activationKey": { + "plan": { "type": "string", - "description": "Activation key. This is required for Velocloud clusters.\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Device plan that must be available in selected location.\n" }, - "adminPassword": { + "quantity": { + "type": "integer", + "description": "Minimum number of devices that must be available in selected location. Default is `1`.\n" + } + }, + "type": "object", + "required": [ + "plan" + ] + }, + "equinix:metal/getOrganizationAddress:getOrganizationAddress": { + "properties": { + "address": { "type": "string", - "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Postal address.\n" }, - "controller1": { + "city": { "type": "string", - "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device.\n", - "willReplaceOnChanges": true + "description": "City name.\n" }, - "controllerFqdn": { + "country": { "type": "string", - "description": "Controller fqdn. This is required for Velocloud clusters.\n", - "willReplaceOnChanges": true + "description": "Two letter country code (ISO 3166-1 alpha-2), e.g. US.\n" }, - "hostname": { + "state": { "type": "string", - "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.\n", - "willReplaceOnChanges": true + "description": "State name.\n" }, - "licenseId": { + "zipCode": { "type": "string", - "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true, - "willReplaceOnChanges": true + "description": "Zip Code.\n" + } + }, + "type": "object", + "required": [ + "address", + "city", + "country", + "state", + "zipCode" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:metal/getPlansFilter:getPlansFilter": { + "properties": { + "all": { + "type": "boolean", + "description": "If is set to true, the values are joined with an AND, and the requests returns only the results that match all specified values. Default is `false`.\n\nAll fields in the `plans` block defined below can be used as attribute for both `sort` and `filter` blocks.\n" }, - "licenseKey": { + "attribute": { "type": "string", - "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true, - "willReplaceOnChanges": true + "description": "The attribute used to filter. Filter attributes are case-sensitive\n" }, - "panoramaAuthKey": { + "matchBy": { "type": "string", - "description": "Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", - "secret": true, - "willReplaceOnChanges": true - }, - "panoramaIpAddress": { - "type": "string", - "description": "Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", - "willReplaceOnChanges": true - }, - "privateAddress": { - "type": "string", - "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "willReplaceOnChanges": true - }, - "privateCidrMask": { - "type": "string", - "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "willReplaceOnChanges": true - }, - "privateGateway": { - "type": "string", - "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "willReplaceOnChanges": true + "description": "The type of comparison to apply. One of: `in` , `re`, `substring`, `less_than`, `less_than_or_equal`, `greater_than`, `greater_than_or_equal`. Default is `in`.\n" }, - "rootPassword": { - "type": "string", - "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.\n", - "secret": true, - "willReplaceOnChanges": true + "values": { + "type": "array", + "items": { + "type": "string" + }, + "description": "The filter values. Filter values are case-sensitive. If you specify multiple values for a filter, the values are joined with an OR by default, and the request returns all results that match any of the specified values\n" } }, "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "adminPassword" - ] - } - } + "required": [ + "attribute", + "values" + ] }, - "equinix:networkedge/DeviceInterface:DeviceInterface": { + "equinix:metal/getPlansPlan:getPlansPlan": { "properties": { - "assignedType": { - "type": "string", - "description": "interface management type (Equinix Managed or empty).\n" + "availableInMetros": { + "type": "array", + "items": { + "type": "string" + }, + "description": "list of metros where the plan is available\n" }, - "id": { - "type": "integer", - "description": "interface identifier.\n" + "availableIns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "(**Deprecated**) list of facilities where the plan is available\n", + "deprecationMessage": "Use available_in_metros instead. For more information, read the migration guide: https://registry.terraform.io/providers/equinix/equinix/latest/docs/guides/migration_guide_facilities_to_metros_devices" }, - "ipAddress": { + "class": { "type": "string", - "description": "interface IP address.\n" + "description": "plan class\n" }, - "macAddress": { + "deploymentTypes": { + "type": "array", + "items": { + "type": "string" + }, + "description": "list of deployment types, e.g. on_demand, spot_market\n" + }, + "description": { "type": "string", - "description": "interface MAC address.\n" + "description": "description of the plan\n" }, - "name": { + "id": { "type": "string", - "description": "Device name.\n" + "description": "id of the plan\n" }, - "operationalStatus": { + "legacy": { + "type": "boolean", + "description": "flag showing if it's a legacy plan\n" + }, + "line": { "type": "string", - "description": "interface operational status. One of `up`, `down`.\n" + "description": "plan line, e.g. baremetal\n" }, - "status": { + "name": { "type": "string", - "description": "interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.\n" + "description": "name of the plan\n" }, - "type": { + "pricingHour": { + "type": "number", + "description": "plan hourly price\n" + }, + "pricingMonth": { + "type": "number", + "description": "plan monthly price\n" + }, + "slug": { "type": "string", - "description": "interface type.\n" + "description": "plan slug\n" } }, "type": "object", + "required": [ + "availableIns", + "availableInMetros", + "class", + "deploymentTypes", + "description", + "id", + "legacy", + "line", + "name", + "pricingHour", + "pricingMonth", + "slug" + ], "language": { "nodejs": { - "requiredOutputs": [ - "assignedType", - "id", - "ipAddress", - "macAddress", - "name", - "operationalStatus", - "status", - "type" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/DeviceLinkDevice:DeviceLinkDevice": { + "equinix:metal/getPlansSort:getPlansSort": { + "properties": { + "attribute": { + "type": "string", + "description": "The attribute used to sort the results. Sort attributes are case-sensitive\n" + }, + "direction": { + "type": "string", + "description": "Sort results in ascending or descending order. Strings are sorted in alphabetical order. One of: asc, desc\n" + } + }, + "type": "object", + "required": [ + "attribute" + ] + }, + "equinix:metal/getProjectBgpConfig:getProjectBgpConfig": { "properties": { "asn": { "type": "integer", - "description": "Device ASN number. Not required for self configured devices.\n" + "description": "Autonomous System Number for local BGP deployment.\n" }, - "id": { + "deploymentType": { "type": "string", - "description": "Device identifier.\n" + "description": "One of `private`, `public`.\n" }, - "interfaceId": { + "maxPrefix": { "type": "integer", - "description": "Device network interface identifier to use for device link connection.\n", - "willReplaceOnChanges": true + "description": "The maximum number of route filters allowed per server.\n" }, - "ipAddress": { + "md5": { "type": "string", - "description": "IP address from device link subnet that was assigned to the device\n" + "description": "Password for BGP session in plaintext (not a checksum).\n" }, "status": { "type": "string", - "description": "device link provisioning status on a given device. One of `PROVISIONING`, `PROVISIONED`, `DEPROVISIONING`, `DEPROVISIONED`, `FAILED`.\n" + "description": "Status of BGP configuration in the project.\n" } }, "type": "object", "required": [ - "id" + "asn", + "deploymentType", + "maxPrefix", + "md5", + "status" ], "language": { "nodejs": { - "requiredOutputs": [ - "id", - "ipAddress", - "status" - ] + "requiredInputs": [] } } }, - "equinix:networkedge/DeviceLinkLink:DeviceLinkLink": { - "properties": { - "accountNumber": { - "type": "string", - "description": "billing account number to be used for connection charges\n" - }, - "dstMetroCode": { - "type": "string", - "description": "connection destination metro code.\n" - }, - "dstZoneCode": { - "type": "string", - "description": "connection destination zone code is not required.\n", - "deprecationMessage": "DestinationZoneCode is not required" - }, - "srcMetroCode": { - "type": "string", - "description": "connection source metro code.\n" - }, - "srcZoneCode": { - "type": "string", - "description": "connection source zone code is not required.\n", - "deprecationMessage": "SourceZoneCode is not required" - }, - "throughput": { - "type": "string", - "description": "connection throughput.\n" + "equinix:metal/ipBlockType:IpBlockType": { + "type": "string", + "enum": [ + { + "name": "GlobalIPv4", + "value": "global_ipv4" }, - "throughputUnit": { - "type": "string", - "description": "connection throughput unit (Mbps or Gbps).\n" + { + "name": "PublicIPv4", + "value": "public_ipv4" } - }, - "type": "object", - "required": [ - "accountNumber", - "dstMetroCode", - "srcMetroCode", - "throughput", - "throughputUnit" ] }, - "equinix:networkedge/DeviceLinkMetroLink:DeviceLinkMetroLink": { - "properties": { - "accountNumber": { - "type": "string", - "description": "billing account number to be used for connection charges\n" + "equinix:metal/networkType:NetworkType": { + "type": "string", + "enum": [ + { + "name": "Layer3", + "value": "layer3" }, - "metroCode": { - "type": "string", - "description": "connection metro code.\n" + { + "name": "Layer2Individual", + "value": "layer2-individual" }, - "throughput": { - "type": "string", - "description": "connection throughput.\n" + { + "name": "Layer2Bonded", + "value": "layer2-bonded" }, - "throughputUnit": { - "type": "string", - "description": "connection throughput unit (Mbps or Gbps).\n" + { + "name": "Hybrid", + "value": "hybrid" } - }, - "type": "object", - "required": [ - "accountNumber", - "metroCode", - "throughput", - "throughputUnit" ] }, - "equinix:networkedge/DeviceSecondaryDevice:DeviceSecondaryDevice": { - "properties": { - "accountNumber": { - "type": "string", - "description": "Billing account number for secondary device.\n", - "willReplaceOnChanges": true - }, - "aclTemplateId": { - "type": "string", - "description": "Identifier of a WAN interface ACL template that will be applied on a secondary device.\n" + "equinix:metal/operatingSystem:OperatingSystem": { + "description": "See https://deploy.equinix.com/developers/api/metal/#tag/OperatingSystems/operation/findOperatingSystems", + "type": "string", + "enum": [ + { + "name": "Alma8", + "value": "alma_8" }, - "additionalBandwidth": { - "type": "integer", - "description": "Additional Internet bandwidth, in Mbps, for a secondary device.\n" + { + "name": "Alma9", + "value": "alma_9" }, - "asn": { - "type": "integer", - "description": "(Autonomous System Number) Unique identifier for a network on the internet.\n" + { + "name": "Alpine3", + "value": "alpine_3" }, - "cloudInitFileId": { - "type": "string", - "description": "Identifier of a cloud init file that will be applied on a secondary device.\n", - "willReplaceOnChanges": true + { + "name": "CentOS6", + "value": "centos_6" }, - "hostname": { - "type": "string", - "description": "Secondary device hostname.\n", - "willReplaceOnChanges": true + { + "name": "CentOS7", + "value": "centos_7" }, - "ibx": { - "type": "string", - "description": "Device location Equinix Business Exchange name.\n" + { + "name": "CentOS8", + "value": "centos_8" }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/DeviceSecondaryDeviceInterface:DeviceSecondaryDeviceInterface" - }, - "description": "List of device interfaces. See Interface Attribute below for more details.\n" + { + "name": "CoreOSAlpha", + "value": "coreos_alpha" }, - "licenseFile": { - "type": "string", - "description": "Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.\n", - "willReplaceOnChanges": true + { + "name": "CoreOSBeta", + "value": "coreos_beta" }, - "licenseFileId": { - "type": "string", - "description": "Identifier of a license file that will be applied on a secondary device.\n", - "willReplaceOnChanges": true + { + "name": "CoreOSStable", + "value": "coreos_stable" }, - "licenseStatus": { - "type": "string", - "description": "Device license registration status. Possible values are `APPLYING_LICENSE`, `REGISTERED`, `APPLIED`, `WAITING_FOR_CLUSTER_SETUP`, `REGISTRATION_FAILED`.\n" + { + "name": "CustomIPXE", + "value": "custom_ipxe" }, - "licenseToken": { - "type": "string", - "description": "License Token can be provided for some device types o the device.\n", - "willReplaceOnChanges": true + { + "name": "Debian10", + "value": "debian_10" }, - "metroCode": { - "type": "string", - "description": "Metro location of a secondary device.\n", - "willReplaceOnChanges": true + { + "name": "Debian11", + "value": "debian_11" }, - "mgmtAclTemplateUuid": { - "type": "string", - "description": "Identifier of an MGMT interface ACL template that will be applied on a secondary device.\n* `ssh-key` - (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.\n" + { + "name": "Debian7", + "value": "debian_7" }, - "name": { - "type": "string", - "description": "Secondary device name.\n" + { + "name": "Debian8", + "value": "debian_8" }, - "notifications": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of email addresses that will receive notifications about secondary device.\n" + { + "name": "Debian9", + "value": "debian_9" }, - "projectId": { - "type": "string", - "description": "Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.\n" + { + "name": "Fedora31", + "value": "fedora_31" }, - "redundancyType": { - "type": "string", - "description": "Device redundancy type applicable for HA devices, either primary or secondary.\n" + { + "name": "Fedora34", + "value": "fedora_34" }, - "redundantId": { - "type": "string", - "description": "Unique identifier for a redundant device applicable for HA devices.\n" + { + "name": "FlatcarAlpha", + "value": "flatcar_alpha" }, - "region": { - "type": "string", - "description": "Device location region.\n" + { + "name": "FlatcarBeta", + "value": "flatcar_beta" }, - "sshIpAddress": { - "type": "string", - "description": "IP address of SSH enabled interface on the device.\n" + { + "name": "FlatcarEdge", + "value": "flatcar_edge" }, - "sshIpFqdn": { - "type": "string", - "description": "FQDN of SSH enabled interface on the device.\n" + { + "name": "FlatcarLTS", + "value": "flatcar_lts" }, - "sshKey": { - "$ref": "#/types/equinix:networkedge/DeviceSecondaryDeviceSshKey:DeviceSecondaryDeviceSshKey", - "description": "Definition of SSH key that will be provisioned on a device\n", - "willReplaceOnChanges": true + { + "name": "FlatcarStable", + "value": "flatcar_stable" }, - "status": { - "type": "string", - "description": "interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.\n" + { + "name": "FreeBSD10_3", + "value": "freebsd_10_3" }, - "uuid": { - "type": "string", - "description": "Device unique identifier.\n" + { + "name": "FreeBSD10_4", + "value": "freebsd_10_4" }, - "vendorConfiguration": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are `controller1`, `activationKey`, `managementType`, `siteId`, `systemIpAddress`, `privateAddress`, `privateCidrMask`, `privateGateway`, `licenseKey`, `licenseId`, `panoramaAuthKey`, `panoramaIpAddress`.\n", - "willReplaceOnChanges": true + { + "name": "FreeBSD11_0", + "value": "freebsd_11_0" }, - "wanInterfaceId": { - "type": "string", - "description": "device interface id picked for WAN\n", - "willReplaceOnChanges": true + { + "name": "FreeBSD11_1", + "value": "freebsd_11_1" }, - "zoneCode": { - "type": "string", - "description": "Device location zone code.\n" - } - }, - "type": "object", - "required": [ - "accountNumber", - "metroCode", - "name", - "notifications" - ], - "language": { - "nodejs": { - "requiredOutputs": [ - "accountNumber", - "additionalBandwidth", - "asn", - "ibx", - "interfaces", - "licenseFileId", - "licenseStatus", - "metroCode", - "name", - "notifications", - "projectId", - "redundancyType", - "redundantId", - "region", - "sshIpAddress", - "sshIpFqdn", - "status", - "uuid", - "vendorConfiguration", - "zoneCode" - ] - } - } - }, - "equinix:networkedge/DeviceSecondaryDeviceInterface:DeviceSecondaryDeviceInterface": { - "properties": { - "assignedType": { - "type": "string", - "description": "interface management type (Equinix Managed or empty).\n" + { + "name": "FreeBSD11_2", + "value": "freebsd_11_2" }, - "id": { - "type": "integer", - "description": "interface identifier.\n" + { + "name": "FreeBSD11_3", + "value": "freebsd_11_3" }, - "ipAddress": { - "type": "string", - "description": "interface IP address.\n" + { + "name": "FreeBSD11_4", + "value": "freebsd_11_4" }, - "macAddress": { - "type": "string", - "description": "interface MAC address.\n" + { + "name": "FreeBSD12Testing", + "value": "freebsd_12_testing" }, - "name": { - "type": "string", - "description": "Device name.\n" + { + "name": "FreeBSD12_1", + "value": "freebsd_12_1" }, - "operationalStatus": { - "type": "string", - "description": "interface operational status. One of `up`, `down`.\n" + { + "name": "FreeBSD13_0", + "value": "freebsd_13_0" }, - "status": { - "type": "string", - "description": "interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.\n" + { + "name": "FreeBSD13_1", + "value": "freebsd_13_1" }, - "type": { - "type": "string", - "description": "interface type.\n" - } - }, - "type": "object", - "language": { - "nodejs": { - "requiredOutputs": [ - "assignedType", - "id", - "ipAddress", - "macAddress", - "name", - "operationalStatus", - "status", - "type" - ] - } - } - }, - "equinix:networkedge/DeviceSecondaryDeviceSshKey:DeviceSecondaryDeviceSshKey": { - "properties": { - "keyName": { - "type": "string", - "description": "Reference by name to previously provisioned public SSH key\n" + { + "name": "FreeBSD13_testing", + "value": "freebsd_13_testing" }, - "username": { - "type": "string", - "description": "username associated with given key.\n" - } - }, - "type": "object", - "required": [ - "username" - ] - }, - "equinix:networkedge/DeviceSshKey:DeviceSshKey": { - "properties": { - "keyName": { - "type": "string", - "description": "Reference by name to previously provisioned public SSH key\n" + { + "name": "HookEsxi7", + "value": "hook_esxi7" }, - "username": { - "type": "string", - "description": "username associated with given key.\n" - } - }, - "type": "object", - "required": [ - "username" - ] - }, - "equinix:networkedge/aclRuleProtocolType:AclRuleProtocolType": { - "type": "string", - "enum": [ { - "name": "IP", - "value": "IP" + "name": "NixOS17_03", + "value": "nixos_17_03" }, { - "name": "TCP", - "value": "TCP" + "name": "NixOS18_03", + "value": "nixos_18_03" }, { - "name": "UDP", - "value": "UDP" - } - ] - }, - "equinix:networkedge/fileType:FileType": { - "type": "string", - "enum": [ + "name": "NixOS19_03", + "value": "nixos_19_03" + }, { - "name": "License", - "value": "LICENSE" + "name": "NixOS20_09", + "value": "nixos_20_09" }, { - "name": "CloudInit", - "value": "CLOUD_INIT" - } - ] - }, - "equinix:networkedge/getDeviceClusterDetail:getDeviceClusterDetail": { - "properties": { - "clusterId": { - "type": "string", - "description": "The id of the cluster\n" + "name": "NixOS21_11", + "value": "nixos_21_11" }, - "clusterName": { - "type": "string", - "description": "The name of the cluster device\n" + { + "name": "NixOS22_05", + "value": "nixos_22_05" }, - "node0s": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode0:getDeviceClusterDetailNode0" - }, - "description": "An object that has node0 details\n" + { + "name": "NixOS22_11", + "value": "nixos_22_11" }, - "node1s": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode1:getDeviceClusterDetailNode1" - }, - "description": "An object that has node1 details\n" + { + "name": "Nixos21_05", + "value": "nixos_21_05" }, - "numOfNodes": { - "type": "integer", - "description": "The number of nodes in the cluster\n" - } - }, - "type": "object", - "required": [ - "clusterId", - "clusterName", - "node0s", - "node1s", - "numOfNodes" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:networkedge/getDeviceClusterDetailNode0:getDeviceClusterDetailNode0": { - "properties": { - "licenseFileId": { - "type": "string", - "description": "Unique identifier of applied license file\n", - "secret": true + { + "name": "NutanixCentos", + "value": "nutanix_centos" }, - "licenseToken": { - "type": "string", - "description": "License token. This is necessary for Palo Alto clusters\n" + { + "name": "NutanixLTS5_19_1", + "value": "nutanix_lts_5_19_1" }, - "name": { - "type": "string", - "description": "Name of an existing Equinix Network Edge device\n" + { + "name": "NutanixLTS5_20", + "value": "nutanix_lts_5_20" }, - "uuid": { - "type": "string", - "description": "UUID of an existing Equinix Network Edge device\n" + { + "name": "OpenSUSE42_3", + "value": "opensuse_42_3" }, - "vendorConfigurations": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode0VendorConfiguration:getDeviceClusterDetailNode0VendorConfiguration" - }, - "description": "An object that has fields relevant to the vendor of the cluster device\n" - } - }, - "type": "object", - "required": [ - "licenseFileId", - "licenseToken", - "name", - "uuid", - "vendorConfigurations" - ], - "language": { - "nodejs": { - "requiredInputs": [] - } - } - }, - "equinix:networkedge/getDeviceClusterDetailNode0VendorConfiguration:getDeviceClusterDetailNode0VendorConfiguration": { - "properties": { - "activationKey": { - "type": "string", - "description": "Activation key. This is required for Velocloud clusters\n", - "secret": true + { + "name": "RHEL7", + "value": "rhel_7" }, - "adminPassword": { - "type": "string", - "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types\n", - "secret": true + { + "name": "RHEL8", + "value": "rhel_8" }, - "controller1": { - "type": "string", - "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device\n" + { + "name": "RHEL9", + "value": "rhel_9" }, - "controllerFqdn": { - "type": "string", - "description": "Controller fqdn. This is required for Velocloud clusters\n" + { + "name": "RancherOS", + "value": "rancher" }, - "hostname": { - "type": "string", - "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters\n" + { + "name": "Rocky8", + "value": "rocky_8" }, - "licenseId": { - "type": "string", - "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true + { + "name": "Rocky9", + "value": "rocky_9" }, - "licenseKey": { - "type": "string", - "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true + { + "name": "SLES12SP3", + "value": "suse_sles12_sp3" }, - "panoramaAuthKey": { - "type": "string", - "description": "Panorama Server Auth Key. This field is relevant only for Palo Alto Networks Firewall devices\n", - "secret": true + { + "name": "ScientificLinux6", + "value": "scientific_6" }, - "panoramaIpAddress": { - "type": "string", - "description": "Panorama Server IP Address. This field is relevant only for Palo Alto Networks Firewall devices\n" + { + "name": "TalosV1", + "value": "talos_v1" }, - "privateAddress": { - "type": "string", - "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n" + { + "name": "Ubuntu1710", + "value": "ubuntu_17_10" }, - "privateCidrMask": { - "type": "string", - "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n" + { + "name": "Ubuntu18_04", + "value": "ubuntu_18_04" }, - "privateGateway": { - "type": "string", - "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n" + { + "name": "Ubuntu1904", + "value": "ubuntu_19_04" }, - "rootPassword": { - "type": "string", - "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster\n", - "secret": true + { + "name": "Ubuntu19_10", + "value": "ubuntu_19_10" + }, + { + "name": "Ubuntu20_04", + "value": "ubuntu_20_04" + }, + { + "name": "Ubuntu20_04_legacy", + "value": "ubuntu_20_04_legacy" + }, + { + "name": "Ubuntu20_10", + "value": "ubuntu_20_10" + }, + { + "name": "Ubuntu2204", + "value": "ubuntu_22_04" + }, + { + "name": "VMWareAlloyVcf", + "value": "vmware_alloy_vcf" + }, + { + "name": "VMWareEsxi5_5", + "value": "vmware_esxi_5_5" + }, + { + "name": "VMWareEsxi6_0", + "value": "vmware_esxi_6_0" + }, + { + "name": "VMWareEsxi6_5", + "value": "vmware_esxi_6_5" + }, + { + "name": "VMWareEsxi6_7", + "value": "vmware_esxi_6_7" + }, + { + "name": "VMWareEsxi6_7_vcf", + "value": "vmware_esxi_6_7_vcf" + }, + { + "name": "VMWareEsxi7_0", + "value": "vmware_esxi_7_0" + }, + { + "name": "VMWareEsxi7_0U2a", + "value": "vmware_esxi_7_0U2a" + }, + { + "name": "VMWareEsxi7_0_vcf", + "value": "vmware_esxi_7_0_vcf" + }, + { + "name": "VMWareNsx2_5_0", + "value": "vmware_nsx_2_5_0" + }, + { + "name": "VMWareNsx3_0_0", + "value": "vmware_nsx_3_0_0" + }, + { + "name": "Virtuozzo7", + "value": "virtuozzo_7" + }, + { + "name": "Windows2012R2", + "value": "windows_2012_r2" + }, + { + "name": "Windows2016", + "value": "windows_2016" + }, + { + "name": "Windows2019", + "value": "windows_2019" + }, + { + "name": "Windows2022", + "value": "windows_2022" } - }, - "type": "object", - "required": [ - "activationKey", - "adminPassword", - "controller1", - "controllerFqdn", - "hostname", - "licenseId", - "licenseKey", - "panoramaAuthKey", - "panoramaIpAddress", - "privateAddress", - "privateCidrMask", - "privateGateway", - "rootPassword" - ], - "language": { - "nodejs": { - "requiredInputs": [] + ] + }, + "equinix:metal/plan:Plan": { + "description": "See https://deploy.equinix.com/developers/api/metal/#tag/Plans/operation/findPlans", + "type": "string", + "enum": [ + { + "name": "A3LargeX86", + "value": "a3.large.x86" + }, + { + "name": "C2LargeARM", + "value": "c2.large.arm" + }, + { + "name": "C2MediumX86", + "value": "c2.medium.x86" + }, + { + "name": "C3LargeARM", + "value": "c3.large.arm64" + }, + { + "name": "C3MediumX86", + "value": "c3.medium.x86" + }, + { + "name": "C3SmallX86", + "value": "c3.small.x86" + }, + { + "name": "F3LargeX86", + "value": "f3.large.x86" + }, + { + "name": "F3MediumX86", + "value": "f3.medium.x86" + }, + { + "name": "G2LargeX86", + "value": "g2.large.x86" + }, + { + "name": "M2XLargeX86", + "value": "m2.xlarge.x86" + }, + { + "name": "M3LargeX86", + "value": "m3.large.x86" + }, + { + "name": "M3SmallX86", + "value": "m3.small.x86" + }, + { + "name": "N2XLargeX86", + "value": "n2.xlarge.x86" + }, + { + "name": "N3XLargeX86", + "value": "n3.xlarge.x86" + }, + { + "name": "S3XLargeX86", + "value": "s3.xlarge.x86" + }, + { + "name": "T3SmallX86", + "value": "t3.small.x86" + }, + { + "name": "X2XLargeX86", + "value": "x2.xlarge.x86" + }, + { + "name": "X3XLargeX86", + "value": "x3.xlarge.x86" } - } + ] }, - "equinix:networkedge/getDeviceClusterDetailNode1:getDeviceClusterDetailNode1": { + "equinix:networkedge/AclTemplateDeviceDetail:AclTemplateDeviceDetail": { "properties": { - "licenseFileId": { - "type": "string", - "description": "Unique identifier of applied license file\n", - "secret": true - }, - "licenseToken": { + "aclStatus": { "type": "string", - "description": "License token. This is necessary for Palo Alto clusters\n" + "description": "Device ACL provisioning status where template was applied. One of `PROVISIONING`, `PROVISIONED`.\n" }, "name": { "type": "string", - "description": "Name of an existing Equinix Network Edge device\n" + "description": "ACL template name.\n" }, "uuid": { "type": "string", - "description": "UUID of an existing Equinix Network Edge device\n" - }, - "vendorConfigurations": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode1VendorConfiguration:getDeviceClusterDetailNode1VendorConfiguration" - }, - "description": "An object that has fields relevant to the vendor of the cluster device\n" + "description": "Device uuid.\n" } }, "type": "object", - "required": [ - "licenseFileId", - "licenseToken", - "name", - "uuid", - "vendorConfigurations" - ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "aclStatus", + "name", + "uuid" + ] } } }, - "equinix:networkedge/getDeviceClusterDetailNode1VendorConfiguration:getDeviceClusterDetailNode1VendorConfiguration": { + "equinix:networkedge/AclTemplateInboundRule:AclTemplateInboundRule": { "properties": { - "activationKey": { + "description": { "type": "string", - "description": "Activation key. This is required for Velocloud clusters\n", - "secret": true + "description": "Inbound rule description, up to 200 characters.\n" }, - "adminPassword": { - "type": "string", - "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types\n", - "secret": true - }, - "controller1": { + "dstPort": { "type": "string", - "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device\n" + "description": "Inbound traffic destination ports. Allowed values are a comma separated list of ports, e.g., `20,22,23`, port range, e.g., `1023-1040` or word `any`.\n" }, - "controllerFqdn": { + "protocol": { "type": "string", - "description": "Controller fqdn. This is required for Velocloud clusters\n" + "oneOf": [ + { + "type": "string" + }, + { + "type": "string", + "$ref": "#/types/equinix:networkedge/aclRuleProtocolType:AclRuleProtocolType" + } + ], + "description": "Inbound traffic protocol. One of `IP`, `TCP`, `UDP`.\n" }, - "hostname": { - "type": "string", - "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters\n" + "sequenceNumber": { + "type": "integer", + "description": "Inbound rule sequence number\n" }, - "licenseId": { + "sourceType": { "type": "string", - "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true + "description": "Type of traffic source used in a given inbound rule\n", + "deprecationMessage": "Source Type will not be returned" }, - "licenseKey": { + "srcPort": { "type": "string", - "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", - "secret": true + "description": "Inbound traffic source ports. Allowed values are a comma separated list of ports, e.g., `20,22,23`, port range, e.g., `1023-1040` or word `any`.\n" }, - "panoramaAuthKey": { + "subnet": { "type": "string", - "description": "Panorama Server Auth Key. This field is relevant only for Palo Alto Networks Firewall devices\n", - "secret": true + "description": "Inbound traffic source IP subnet in CIDR format.\n" }, - "panoramaIpAddress": { + "subnets": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Inbound traffic source IP subnets in CIDR format.\n", + "deprecationMessage": "Use Subnet instead" + } + }, + "type": "object", + "required": [ + "dstPort", + "protocol", + "srcPort" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "dstPort", + "protocol", + "sequenceNumber", + "sourceType", + "srcPort" + ] + } + } + }, + "equinix:networkedge/DeviceClusterDetails:DeviceClusterDetails": { + "properties": { + "clusterId": { "type": "string", - "description": "Panorama Server IP Address. This field is relevant only for Palo Alto Networks Firewall devices\n" + "description": "The ID of the cluster.\n" }, - "privateAddress": { + "clusterName": { "type": "string", - "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n" + "description": "The name of the cluster device\n" }, - "privateCidrMask": { - "type": "string", - "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n" + "node0": { + "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode0:DeviceClusterDetailsNode0", + "description": "An object that has `node0` configuration. See Cluster Details - Nodes below for more details.\n" }, - "privateGateway": { - "type": "string", - "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n" + "node1": { + "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode1:DeviceClusterDetailsNode1", + "description": "An object that has `node1` configuration. See Cluster Details - Nodes below for more details.\n" }, - "rootPassword": { - "type": "string", - "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster\n", - "secret": true + "numOfNodes": { + "type": "integer", + "description": "The number of nodes in the cluster.\n" } }, "type": "object", "required": [ - "activationKey", - "adminPassword", - "controller1", - "controllerFqdn", - "hostname", - "licenseId", - "licenseKey", - "panoramaAuthKey", - "panoramaIpAddress", - "privateAddress", - "privateCidrMask", - "privateGateway", - "rootPassword" + "clusterName", + "node0", + "node1" ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "clusterId", + "clusterName", + "node0", + "node1", + "numOfNodes" + ] } } }, - "equinix:networkedge/getDeviceInterface:getDeviceInterface": { + "equinix:networkedge/DeviceClusterDetailsNode0:DeviceClusterDetailsNode0": { "properties": { - "assignedType": { - "type": "string", - "description": "Interface management type (Equinix Managed or empty)\n" - }, - "id": { - "type": "integer", - "description": "Interface identifier\n" - }, - "ipAddress": { + "licenseFileId": { "type": "string", - "description": "interface IP address\n" + "description": "License file id. This is necessary for Fortinet and Juniper clusters.\n", + "willReplaceOnChanges": true }, - "macAddress": { + "licenseToken": { "type": "string", - "description": "Interface MAC addres\n" + "description": "License token. This is necessary for Palo Alto clusters.\n", + "secret": true, + "willReplaceOnChanges": true }, "name": { "type": "string", - "description": "Name of an existing Equinix Network Edge device\n" - }, - "operationalStatus": { - "type": "string", - "description": "Interface operational status (up or down)\n" + "description": "Device name.\n" }, - "status": { + "uuid": { "type": "string", - "description": "Device provisioning status\n* INITIALIZING\n* PROVISIONING\n* PROVISIONED (**NOTE: By default data source will only return devices in this state. To include other states see `valid_state_list`**)\n* WAITING_FOR_PRIMARY\n* WAITING_FOR_SECONDARY\n* WAITING_FOR_REPLICA_CLUSTER_NODES\n* CLUSTER_SETUP_IN_PROGRESS\n* FAILED\n* DEPROVISIONING\n* DEPROVISIONED\n* RESOURCE_UPGRADE_IN_PROGRESS\n* RESOURCE_UPGRADE_FAILED\n" + "description": "Device unique identifier.\n" }, - "type": { - "type": "string", - "description": "Interface type\n" + "vendorConfiguration": { + "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode0VendorConfiguration:DeviceClusterDetailsNode0VendorConfiguration", + "description": "An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.\n", + "willReplaceOnChanges": true } }, "type": "object", - "required": [ - "assignedType", - "id", - "ipAddress", - "macAddress", - "name", - "operationalStatus", - "status", - "type" - ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "name", + "uuid" + ] } } }, - "equinix:networkedge/getDeviceSecondaryDevice:getDeviceSecondaryDevice": { + "equinix:networkedge/DeviceClusterDetailsNode0VendorConfiguration:DeviceClusterDetailsNode0VendorConfiguration": { "properties": { - "accountNumber": { + "activationKey": { "type": "string", - "description": "Device billing account number\n" + "description": "Activation key. This is required for Velocloud clusters.\n", + "secret": true, + "willReplaceOnChanges": true }, - "aclTemplateId": { + "adminPassword": { "type": "string", - "description": "Unique identifier of applied ACL template\n" - }, - "additionalBandwidth": { - "type": "integer", - "description": "Additional Internet bandwidth, in Mbps, that will be allocated to the device\n" + "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.\n", + "secret": true, + "willReplaceOnChanges": true }, - "asn": { - "type": "integer", - "description": "Autonomous system number\n" + "controller1": { + "type": "string", + "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device.\n", + "willReplaceOnChanges": true }, - "cloudInitFileId": { + "controllerFqdn": { "type": "string", - "description": "Unique identifier of applied cloud init file\n" + "description": "Controller fqdn. This is required for Velocloud clusters.\n", + "willReplaceOnChanges": true }, "hostname": { "type": "string", - "description": "Device hostname prefix\n" + "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.\n", + "willReplaceOnChanges": true }, - "ibx": { + "licenseId": { "type": "string", - "description": "Device location Equinix Business Exchange name\n" - }, - "interfaces": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/getDeviceSecondaryDeviceInterface:getDeviceSecondaryDeviceInterface" - }, - "description": "List of device interfaces\n* `interface.#.id` - interface identifier\n* `interface.#.name` - interface name\n* `interface.#.status` - interface status (AVAILABLE, RESERVED, ASSIGNED)\n* `interface.#.operational_status` - interface operational status (up or down)\n* `interface.#.mac_address` - interface MAC address\n* `interface.#.ip_address` - interface IP address\n* `interface.#.assigned_type` - interface management type (Equinix Managed or empty)\n* `interface.#.type` - interface type\n" + "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true, + "willReplaceOnChanges": true }, - "licenseFile": { + "licenseKey": { "type": "string", - "description": "Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode\n" + "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true, + "willReplaceOnChanges": true }, - "licenseFileId": { + "panoramaAuthKey": { "type": "string", - "description": "Unique identifier of applied license file\n" + "description": "Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", + "secret": true, + "willReplaceOnChanges": true }, - "licenseStatus": { + "panoramaIpAddress": { "type": "string", - "description": "Device license registration status\n* APPLYING_LICENSE\n* REGISTERED\n* APPLIED\n* WAITING_FOR_CLUSTER_SETUP\n* REGISTRATION_FAILED\n* NA\n" + "description": "Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", + "willReplaceOnChanges": true }, - "licenseToken": { + "privateAddress": { "type": "string", - "description": "License Token applicable for some device types in BYOL licensing mode\n" + "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "willReplaceOnChanges": true }, - "metroCode": { + "privateCidrMask": { "type": "string", - "description": "Device location metro code\n" + "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "willReplaceOnChanges": true }, - "mgmtAclTemplateUuid": { + "privateGateway": { "type": "string", - "description": "Unique identifier of applied MGMT ACL template\n" + "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "willReplaceOnChanges": true }, - "name": { + "rootPassword": { "type": "string", - "description": "Name of an existing Equinix Network Edge device\n" + "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.\n", + "secret": true, + "willReplaceOnChanges": true + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "adminPassword" + ] + } + } + }, + "equinix:networkedge/DeviceClusterDetailsNode1:DeviceClusterDetailsNode1": { + "properties": { + "licenseFileId": { + "type": "string", + "description": "License file id. This is necessary for Fortinet and Juniper clusters.\n", + "willReplaceOnChanges": true }, - "notifications": { - "type": "array", - "items": { - "type": "string" - }, - "description": "List of email addresses that will receive device status notifications\n" + "licenseToken": { + "type": "string", + "description": "License token. This is necessary for Palo Alto clusters.\n", + "secret": true, + "willReplaceOnChanges": true }, - "projectId": { + "name": { "type": "string", - "description": "The unique identifier of Project Resource to which device is scoped to\n" + "description": "Device name.\n" }, - "redundancyType": { + "uuid": { "type": "string", - "description": "Device redundancy type applicable for HA devices, either primary or secondary\n" + "description": "Device unique identifier.\n" }, - "redundantId": { + "vendorConfiguration": { + "$ref": "#/types/equinix:networkedge/DeviceClusterDetailsNode1VendorConfiguration:DeviceClusterDetailsNode1VendorConfiguration", + "description": "An object that has fields relevant to the vendor of the cluster device. See Cluster Details - Nodes - Vendor Configuration below for more details.\n", + "willReplaceOnChanges": true + } + }, + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "name", + "uuid" + ] + } + } + }, + "equinix:networkedge/DeviceClusterDetailsNode1VendorConfiguration:DeviceClusterDetailsNode1VendorConfiguration": { + "properties": { + "activationKey": { "type": "string", - "description": "Unique identifier for a redundant device applicable for HA devices\n" + "description": "Activation key. This is required for Velocloud clusters.\n", + "secret": true, + "willReplaceOnChanges": true }, - "region": { + "adminPassword": { "type": "string", - "description": "Device location region\n" + "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types.\n", + "secret": true, + "willReplaceOnChanges": true }, - "sshIpAddress": { + "controller1": { "type": "string", - "description": "IP address of SSH enabled interface on the device\n" + "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device.\n", + "willReplaceOnChanges": true }, - "sshIpFqdn": { + "controllerFqdn": { "type": "string", - "description": "FQDN of SSH enabled interface on the device\n" + "description": "Controller fqdn. This is required for Velocloud clusters.\n", + "willReplaceOnChanges": true }, - "sshKeys": { - "type": "array", - "items": { - "$ref": "#/types/equinix:networkedge/getDeviceSecondaryDeviceSshKey:getDeviceSecondaryDeviceSshKey" - }, - "description": "Definition of SSH key that will be provisioned on a device\n" + "hostname": { + "type": "string", + "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.\n", + "willReplaceOnChanges": true }, - "status": { + "licenseId": { "type": "string", - "description": "Device provisioning status\n* INITIALIZING\n* PROVISIONING\n* PROVISIONED (**NOTE: By default data source will only return devices in this state. To include other states see `valid_state_list`**)\n* WAITING_FOR_PRIMARY\n* WAITING_FOR_SECONDARY\n* WAITING_FOR_REPLICA_CLUSTER_NODES\n* CLUSTER_SETUP_IN_PROGRESS\n* FAILED\n* DEPROVISIONING\n* DEPROVISIONED\n* RESOURCE_UPGRADE_IN_PROGRESS\n* RESOURCE_UPGRADE_FAILED\n" + "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true, + "willReplaceOnChanges": true }, - "uuid": { + "licenseKey": { "type": "string", - "description": "UUID of an existing Equinix Network Edge device\n" + "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true, + "willReplaceOnChanges": true }, - "vendorConfiguration": { - "type": "object", - "additionalProperties": { - "type": "string" - }, - "description": "Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)\n" + "panoramaAuthKey": { + "type": "string", + "description": "Panorama Server Auth Key. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", + "secret": true, + "willReplaceOnChanges": true }, - "wanInterfaceId": { + "panoramaIpAddress": { "type": "string", - "description": "device interface id picked for WAN\n" + "description": "Panorama Server IP Address. This field is relevant only for the PA-VM firewall devices to have integration with Panorama Server.\n", + "willReplaceOnChanges": true }, - "zoneCode": { + "privateAddress": { "type": "string", - "description": "Device location zone code\n" + "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "willReplaceOnChanges": true + }, + "privateCidrMask": { + "type": "string", + "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "willReplaceOnChanges": true + }, + "privateGateway": { + "type": "string", + "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "willReplaceOnChanges": true + }, + "rootPassword": { + "type": "string", + "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster.\n", + "secret": true, + "willReplaceOnChanges": true } }, "type": "object", - "required": [ - "accountNumber", - "aclTemplateId", - "additionalBandwidth", - "asn", - "cloudInitFileId", - "hostname", - "ibx", - "interfaces", - "licenseFile", - "licenseFileId", - "licenseStatus", - "licenseToken", - "metroCode", - "mgmtAclTemplateUuid", - "name", - "notifications", - "projectId", - "redundancyType", - "redundantId", - "region", - "sshIpAddress", - "sshIpFqdn", - "sshKeys", - "status", - "uuid", - "vendorConfiguration", - "wanInterfaceId", - "zoneCode" - ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "adminPassword" + ] } } }, - "equinix:networkedge/getDeviceSecondaryDeviceInterface:getDeviceSecondaryDeviceInterface": { + "equinix:networkedge/DeviceInterface:DeviceInterface": { "properties": { "assignedType": { "type": "string", - "description": "Interface management type (Equinix Managed or empty)\n" + "description": "interface management type (Equinix Managed or empty).\n" }, "id": { "type": "integer", - "description": "Interface identifier\n" + "description": "interface identifier.\n" }, "ipAddress": { "type": "string", - "description": "interface IP address\n" + "description": "interface IP address.\n" }, "macAddress": { "type": "string", - "description": "Interface MAC addres\n" + "description": "interface MAC address.\n" }, "name": { "type": "string", - "description": "Name of an existing Equinix Network Edge device\n" + "description": "Device name.\n" }, "operationalStatus": { "type": "string", - "description": "Interface operational status (up or down)\n" + "description": "interface operational status. One of `up`, `down`.\n" }, "status": { "type": "string", - "description": "Device provisioning status\n* INITIALIZING\n* PROVISIONING\n* PROVISIONED (**NOTE: By default data source will only return devices in this state. To include other states see `valid_state_list`**)\n* WAITING_FOR_PRIMARY\n* WAITING_FOR_SECONDARY\n* WAITING_FOR_REPLICA_CLUSTER_NODES\n* CLUSTER_SETUP_IN_PROGRESS\n* FAILED\n* DEPROVISIONING\n* DEPROVISIONED\n* RESOURCE_UPGRADE_IN_PROGRESS\n* RESOURCE_UPGRADE_FAILED\n" + "description": "interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.\n" }, "type": { "type": "string", - "description": "Interface type\n" + "description": "interface type.\n" } }, "type": "object", - "required": [ - "assignedType", - "id", - "ipAddress", - "macAddress", - "name", - "operationalStatus", - "status", - "type" - ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "assignedType", + "id", + "ipAddress", + "macAddress", + "name", + "operationalStatus", + "status", + "type" + ] } } }, - "equinix:networkedge/getDeviceSecondaryDeviceSshKey:getDeviceSecondaryDeviceSshKey": { + "equinix:networkedge/DeviceLinkDevice:DeviceLinkDevice": { "properties": { - "keyName": { + "asn": { + "type": "integer", + "description": "Device ASN number. Not required for self configured devices.\n" + }, + "id": { "type": "string", - "description": "Reference by name to previously provisioned public SSH key\n" + "description": "Device identifier.\n" }, - "username": { + "interfaceId": { + "type": "integer", + "description": "Device network interface identifier to use for device link connection.\n", + "willReplaceOnChanges": true + }, + "ipAddress": { "type": "string", - "description": "Username associated with given key\n" + "description": "IP address from device link subnet that was assigned to the device\n" + }, + "status": { + "type": "string", + "description": "device link provisioning status on a given device. One of `PROVISIONING`, `PROVISIONED`, `DEPROVISIONING`, `DEPROVISIONED`, `FAILED`.\n" } }, "type": "object", "required": [ - "keyName", - "username" + "id" ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "id", + "ipAddress", + "status" + ] } } }, - "equinix:networkedge/getDeviceSshKey:getDeviceSshKey": { + "equinix:networkedge/DeviceLinkLink:DeviceLinkLink": { "properties": { - "keyName": { + "accountNumber": { "type": "string", - "description": "Reference by name to previously provisioned public SSH key\n" + "description": "billing account number to be used for connection charges\n" }, - "username": { + "dstMetroCode": { "type": "string", - "description": "Username associated with given key\n" - } - }, + "description": "connection destination metro code.\n" + }, + "dstZoneCode": { + "type": "string", + "description": "connection destination zone code is not required.\n", + "deprecationMessage": "DestinationZoneCode is not required" + }, + "srcMetroCode": { + "type": "string", + "description": "connection source metro code.\n" + }, + "srcZoneCode": { + "type": "string", + "description": "connection source zone code is not required.\n", + "deprecationMessage": "SourceZoneCode is not required" + }, + "throughput": { + "type": "string", + "description": "connection throughput.\n" + }, + "throughputUnit": { + "type": "string", + "description": "connection throughput unit (Mbps or Gbps).\n" + } + }, "type": "object", "required": [ - "keyName", - "username" + "accountNumber", + "dstMetroCode", + "srcMetroCode", + "throughput", + "throughputUnit" + ] + }, + "equinix:networkedge/DeviceLinkMetroLink:DeviceLinkMetroLink": { + "properties": { + "accountNumber": { + "type": "string", + "description": "billing account number to be used for connection charges\n" + }, + "metroCode": { + "type": "string", + "description": "connection metro code.\n" + }, + "throughput": { + "type": "string", + "description": "connection throughput.\n" + }, + "throughputUnit": { + "type": "string", + "description": "connection throughput unit (Mbps or Gbps).\n" + } + }, + "type": "object", + "required": [ + "accountNumber", + "metroCode", + "throughput", + "throughputUnit" + ] + }, + "equinix:networkedge/DeviceSecondaryDevice:DeviceSecondaryDevice": { + "properties": { + "accountNumber": { + "type": "string", + "description": "Billing account number for secondary device.\n", + "willReplaceOnChanges": true + }, + "aclTemplateId": { + "type": "string", + "description": "Identifier of a WAN interface ACL template that will be applied on a secondary device.\n" + }, + "additionalBandwidth": { + "type": "integer", + "description": "Additional Internet bandwidth, in Mbps, for a secondary device.\n" + }, + "asn": { + "type": "integer", + "description": "(Autonomous System Number) Unique identifier for a network on the internet.\n" + }, + "cloudInitFileId": { + "type": "string", + "description": "Identifier of a cloud init file that will be applied on a secondary device.\n", + "willReplaceOnChanges": true + }, + "hostname": { + "type": "string", + "description": "Secondary device hostname.\n", + "willReplaceOnChanges": true + }, + "ibx": { + "type": "string", + "description": "Device location Equinix Business Exchange name.\n" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/DeviceSecondaryDeviceInterface:DeviceSecondaryDeviceInterface" + }, + "description": "List of device interfaces. See Interface Attribute below for more details.\n" + }, + "licenseFile": { + "type": "string", + "description": "Path to the license file that will be uploaded and applied on a secondary device. Applicable for some device types in BYOL licensing mode.\n", + "willReplaceOnChanges": true + }, + "licenseFileId": { + "type": "string", + "description": "Identifier of a license file that will be applied on a secondary device.\n", + "willReplaceOnChanges": true + }, + "licenseStatus": { + "type": "string", + "description": "Device license registration status. Possible values are `APPLYING_LICENSE`, `REGISTERED`, `APPLIED`, `WAITING_FOR_CLUSTER_SETUP`, `REGISTRATION_FAILED`.\n" + }, + "licenseToken": { + "type": "string", + "description": "License Token can be provided for some device types o the device.\n", + "willReplaceOnChanges": true + }, + "metroCode": { + "type": "string", + "description": "Metro location of a secondary device.\n", + "willReplaceOnChanges": true + }, + "mgmtAclTemplateUuid": { + "type": "string", + "description": "Identifier of an MGMT interface ACL template that will be applied on a secondary device.\n* `ssh-key` - (Optional) Up to one definition of SSH key that will be provisioned on a secondary device.\n" + }, + "name": { + "type": "string", + "description": "Secondary device name.\n" + }, + "notifications": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of email addresses that will receive notifications about secondary device.\n" + }, + "projectId": { + "type": "string", + "description": "Unique Identifier for the project resource where the device is scoped to.If you leave it out, the device will be created under the default project id of your organization.\n" + }, + "redundancyType": { + "type": "string", + "description": "Device redundancy type applicable for HA devices, either primary or secondary.\n" + }, + "redundantId": { + "type": "string", + "description": "Unique identifier for a redundant device applicable for HA devices.\n" + }, + "region": { + "type": "string", + "description": "Device location region.\n" + }, + "sshIpAddress": { + "type": "string", + "description": "IP address of SSH enabled interface on the device.\n" + }, + "sshIpFqdn": { + "type": "string", + "description": "FQDN of SSH enabled interface on the device.\n" + }, + "sshKey": { + "$ref": "#/types/equinix:networkedge/DeviceSecondaryDeviceSshKey:DeviceSecondaryDeviceSshKey", + "description": "Definition of SSH key that will be provisioned on a device\n", + "willReplaceOnChanges": true + }, + "status": { + "type": "string", + "description": "interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.\n" + }, + "uuid": { + "type": "string", + "description": "Device unique identifier.\n" + }, + "vendorConfiguration": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Key/Value pairs of vendor specific configuration parameters for a secondary device. Key values are `controller1`, `activationKey`, `managementType`, `siteId`, `systemIpAddress`, `privateAddress`, `privateCidrMask`, `privateGateway`, `licenseKey`, `licenseId`, `panoramaAuthKey`, `panoramaIpAddress`.\n", + "willReplaceOnChanges": true + }, + "wanInterfaceId": { + "type": "string", + "description": "device interface id picked for WAN\n", + "willReplaceOnChanges": true + }, + "zoneCode": { + "type": "string", + "description": "Device location zone code.\n" + } + }, + "type": "object", + "required": [ + "accountNumber", + "metroCode", + "name", + "notifications" ], "language": { "nodejs": { - "requiredInputs": [] + "requiredOutputs": [ + "accountNumber", + "additionalBandwidth", + "asn", + "ibx", + "interfaces", + "licenseFileId", + "licenseStatus", + "metroCode", + "name", + "notifications", + "projectId", + "redundancyType", + "redundantId", + "region", + "sshIpAddress", + "sshIpFqdn", + "status", + "uuid", + "vendorConfiguration", + "zoneCode" + ] } } }, - "equinix:networkedge/throughputUnit:ThroughputUnit": { - "type": "string", - "enum": [ - { - "name": "Mbps", - "value": "Mbps" + "equinix:networkedge/DeviceSecondaryDeviceInterface:DeviceSecondaryDeviceInterface": { + "properties": { + "assignedType": { + "type": "string", + "description": "interface management type (Equinix Managed or empty).\n" }, - { - "name": "Gbps", - "value": "Gbps" - } - ] - } - }, - "provider": { - "description": "The provider type for the equinix package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n", - "properties": { - "authToken": { - "type": "string", - "description": "The Equinix Metal API auth key for API operations\n" - }, - "clientId": { - "type": "string", - "description": "API Consumer Key available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTID` shell environment variable.\n" - }, - "clientSecret": { - "type": "string", - "description": "API Consumer secret available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTSECRET` shell environment variable.\n" - }, - "endpoint": { - "type": "string", - "description": "The Equinix API base URL to point out desired environment. This argument can also be specified with the\n`EQUINIX_API_ENDPOINT` shell environment variable. (Defaults to `https://api.equinix.com`)\n" + "id": { + "type": "integer", + "description": "interface identifier.\n" + }, + "ipAddress": { + "type": "string", + "description": "interface IP address.\n" + }, + "macAddress": { + "type": "string", + "description": "interface MAC address.\n" + }, + "name": { + "type": "string", + "description": "Device name.\n" + }, + "operationalStatus": { + "type": "string", + "description": "interface operational status. One of `up`, `down`.\n" + }, + "status": { + "type": "string", + "description": "interface status. One of `AVAILABLE`, `RESERVED`, `ASSIGNED`.\n" + }, + "type": { + "type": "string", + "description": "interface type.\n" + } }, - "maxRetries": { - "type": "integer", - "description": "Maximum number of retries in case of network failure.\n" + "type": "object", + "language": { + "nodejs": { + "requiredOutputs": [ + "assignedType", + "id", + "ipAddress", + "macAddress", + "name", + "operationalStatus", + "status", + "type" + ] + } + } + }, + "equinix:networkedge/DeviceSecondaryDeviceSshKey:DeviceSecondaryDeviceSshKey": { + "properties": { + "keyName": { + "type": "string", + "description": "Reference by name to previously provisioned public SSH key\n" + }, + "username": { + "type": "string", + "description": "username associated with given key.\n" + } }, - "maxRetryWaitSeconds": { - "type": "integer", - "description": "Maximum number of seconds to wait before retrying a request.\n" + "type": "object", + "required": [ + "username" + ] + }, + "equinix:networkedge/DeviceSshKey:DeviceSshKey": { + "properties": { + "keyName": { + "type": "string", + "description": "Reference by name to previously provisioned public SSH key\n" + }, + "username": { + "type": "string", + "description": "username associated with given key.\n" + } }, - "requestTimeout": { - "type": "integer", - "description": "The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request.\nCanceled requests may still result in provisioned resources. (Defaults to `30`)\n" + "type": "object", + "required": [ + "username" + ] + }, + "equinix:networkedge/aclRuleProtocolType:AclRuleProtocolType": { + "type": "string", + "enum": [ + { + "name": "IP", + "value": "IP" + }, + { + "name": "TCP", + "value": "TCP" + }, + { + "name": "UDP", + "value": "UDP" + } + ] + }, + "equinix:networkedge/fileType:FileType": { + "type": "string", + "enum": [ + { + "name": "License", + "value": "LICENSE" + }, + { + "name": "CloudInit", + "value": "CLOUD_INIT" + } + ] + }, + "equinix:networkedge/getDeviceClusterDetail:getDeviceClusterDetail": { + "properties": { + "clusterId": { + "type": "string", + "description": "The id of the cluster\n" + }, + "clusterName": { + "type": "string", + "description": "The name of the cluster device\n" + }, + "node0s": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode0:getDeviceClusterDetailNode0" + }, + "description": "An object that has node0 details\n" + }, + "node1s": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode1:getDeviceClusterDetailNode1" + }, + "description": "An object that has node1 details\n" + }, + "numOfNodes": { + "type": "integer", + "description": "The number of nodes in the cluster\n" + } }, - "responseMaxPageSize": { - "type": "integer", - "description": "The maximum number of records in a single response for REST queries that produce paginated responses. (Default is client\nspecific)\n" + "type": "object", + "required": [ + "clusterId", + "clusterName", + "node0s", + "node1s", + "numOfNodes" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceClusterDetailNode0:getDeviceClusterDetailNode0": { + "properties": { + "licenseFileId": { + "type": "string", + "description": "Unique identifier of applied license file\n", + "secret": true + }, + "licenseToken": { + "type": "string", + "description": "License token. This is necessary for Palo Alto clusters\n" + }, + "name": { + "type": "string", + "description": "Name of an existing Equinix Network Edge device\n" + }, + "uuid": { + "type": "string", + "description": "UUID of an existing Equinix Network Edge device\n" + }, + "vendorConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode0VendorConfiguration:getDeviceClusterDetailNode0VendorConfiguration" + }, + "description": "An object that has fields relevant to the vendor of the cluster device\n" + } }, - "token": { - "type": "string", - "description": "API tokens are generated from API Consumer clients using the [OAuth2\nAPI](https://developer.equinix.com/dev-docs/fabric/getting-started/getting-access-token#request-access-and-refresh-tokens).\nThis argument can also be specified with the `EQUINIX_API_TOKEN` shell environment variable.\n" + "type": "object", + "required": [ + "licenseFileId", + "licenseToken", + "name", + "uuid", + "vendorConfigurations" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceClusterDetailNode0VendorConfiguration:getDeviceClusterDetailNode0VendorConfiguration": { + "properties": { + "activationKey": { + "type": "string", + "description": "Activation key. This is required for Velocloud clusters\n", + "secret": true + }, + "adminPassword": { + "type": "string", + "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types\n", + "secret": true + }, + "controller1": { + "type": "string", + "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device\n" + }, + "controllerFqdn": { + "type": "string", + "description": "Controller fqdn. This is required for Velocloud clusters\n" + }, + "hostname": { + "type": "string", + "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters\n" + }, + "licenseId": { + "type": "string", + "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true + }, + "licenseKey": { + "type": "string", + "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true + }, + "panoramaAuthKey": { + "type": "string", + "description": "Panorama Server Auth Key. This field is relevant only for Palo Alto Networks Firewall devices\n", + "secret": true + }, + "panoramaIpAddress": { + "type": "string", + "description": "Panorama Server IP Address. This field is relevant only for Palo Alto Networks Firewall devices\n" + }, + "privateAddress": { + "type": "string", + "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n" + }, + "privateCidrMask": { + "type": "string", + "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n" + }, + "privateGateway": { + "type": "string", + "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n" + }, + "rootPassword": { + "type": "string", + "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster\n", + "secret": true + } + }, + "type": "object", + "required": [ + "activationKey", + "adminPassword", + "controller1", + "controllerFqdn", + "hostname", + "licenseId", + "licenseKey", + "panoramaAuthKey", + "panoramaIpAddress", + "privateAddress", + "privateCidrMask", + "privateGateway", + "rootPassword" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceClusterDetailNode1:getDeviceClusterDetailNode1": { + "properties": { + "licenseFileId": { + "type": "string", + "description": "Unique identifier of applied license file\n", + "secret": true + }, + "licenseToken": { + "type": "string", + "description": "License token. This is necessary for Palo Alto clusters\n" + }, + "name": { + "type": "string", + "description": "Name of an existing Equinix Network Edge device\n" + }, + "uuid": { + "type": "string", + "description": "UUID of an existing Equinix Network Edge device\n" + }, + "vendorConfigurations": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/getDeviceClusterDetailNode1VendorConfiguration:getDeviceClusterDetailNode1VendorConfiguration" + }, + "description": "An object that has fields relevant to the vendor of the cluster device\n" + } + }, + "type": "object", + "required": [ + "licenseFileId", + "licenseToken", + "name", + "uuid", + "vendorConfigurations" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceClusterDetailNode1VendorConfiguration:getDeviceClusterDetailNode1VendorConfiguration": { + "properties": { + "activationKey": { + "type": "string", + "description": "Activation key. This is required for Velocloud clusters\n", + "secret": true + }, + "adminPassword": { + "type": "string", + "description": "The administrative password of the device. You can use it to log in to the console. This field is not available for all device types\n", + "secret": true + }, + "controller1": { + "type": "string", + "description": "System IP Address. Mandatory for the Fortinet SDWAN cluster device\n" + }, + "controllerFqdn": { + "type": "string", + "description": "Controller fqdn. This is required for Velocloud clusters\n" + }, + "hostname": { + "type": "string", + "description": "Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters\n" + }, + "licenseId": { + "type": "string", + "description": "License id. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true + }, + "licenseKey": { + "type": "string", + "description": "License key. This field is relevant only for the BlueCat DNS and DHCP Server\n", + "secret": true + }, + "panoramaAuthKey": { + "type": "string", + "description": "Panorama Server Auth Key. This field is relevant only for Palo Alto Networks Firewall devices\n", + "secret": true + }, + "panoramaIpAddress": { + "type": "string", + "description": "Panorama Server IP Address. This field is relevant only for Palo Alto Networks Firewall devices\n" + }, + "privateAddress": { + "type": "string", + "description": "Private address. This field is relevant only for the BlueCat DNS and DHCP Server\n" + }, + "privateCidrMask": { + "type": "string", + "description": "Private CIDR Mask. This field is relevant only for the BlueCat DNS and DHCP Server\n" + }, + "privateGateway": { + "type": "string", + "description": "Private gateway. This field is relevant only for the BlueCat DNS and DHCP Server\n" + }, + "rootPassword": { + "type": "string", + "description": "The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster\n", + "secret": true + } + }, + "type": "object", + "required": [ + "activationKey", + "adminPassword", + "controller1", + "controllerFqdn", + "hostname", + "licenseId", + "licenseKey", + "panoramaAuthKey", + "panoramaIpAddress", + "privateAddress", + "privateCidrMask", + "privateGateway", + "rootPassword" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceInterface:getDeviceInterface": { + "properties": { + "assignedType": { + "type": "string", + "description": "Interface management type (Equinix Managed or empty)\n" + }, + "id": { + "type": "integer", + "description": "Interface identifier\n" + }, + "ipAddress": { + "type": "string", + "description": "interface IP address\n" + }, + "macAddress": { + "type": "string", + "description": "Interface MAC addres\n" + }, + "name": { + "type": "string", + "description": "Name of an existing Equinix Network Edge device\n" + }, + "operationalStatus": { + "type": "string", + "description": "Interface operational status (up or down)\n" + }, + "status": { + "type": "string", + "description": "Device provisioning status\n* INITIALIZING\n* PROVISIONING\n* PROVISIONED (**NOTE: By default data source will only return devices in this state. To include other states see `valid_state_list`**)\n* WAITING_FOR_PRIMARY\n* WAITING_FOR_SECONDARY\n* WAITING_FOR_REPLICA_CLUSTER_NODES\n* CLUSTER_SETUP_IN_PROGRESS\n* FAILED\n* DEPROVISIONING\n* DEPROVISIONED\n* RESOURCE_UPGRADE_IN_PROGRESS\n* RESOURCE_UPGRADE_FAILED\n" + }, + "type": { + "type": "string", + "description": "Interface type\n" + } + }, + "type": "object", + "required": [ + "assignedType", + "id", + "ipAddress", + "macAddress", + "name", + "operationalStatus", + "status", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceSecondaryDevice:getDeviceSecondaryDevice": { + "properties": { + "accountNumber": { + "type": "string", + "description": "Device billing account number\n" + }, + "aclTemplateId": { + "type": "string", + "description": "Unique identifier of applied ACL template\n" + }, + "additionalBandwidth": { + "type": "integer", + "description": "Additional Internet bandwidth, in Mbps, that will be allocated to the device\n" + }, + "asn": { + "type": "integer", + "description": "Autonomous system number\n" + }, + "cloudInitFileId": { + "type": "string", + "description": "Unique identifier of applied cloud init file\n" + }, + "hostname": { + "type": "string", + "description": "Device hostname prefix\n" + }, + "ibx": { + "type": "string", + "description": "Device location Equinix Business Exchange name\n" + }, + "interfaces": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/getDeviceSecondaryDeviceInterface:getDeviceSecondaryDeviceInterface" + }, + "description": "List of device interfaces\n* `interface.#.id` - interface identifier\n* `interface.#.name` - interface name\n* `interface.#.status` - interface status (AVAILABLE, RESERVED, ASSIGNED)\n* `interface.#.operational_status` - interface operational status (up or down)\n* `interface.#.mac_address` - interface MAC address\n* `interface.#.ip_address` - interface IP address\n* `interface.#.assigned_type` - interface management type (Equinix Managed or empty)\n* `interface.#.type` - interface type\n" + }, + "licenseFile": { + "type": "string", + "description": "Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode\n" + }, + "licenseFileId": { + "type": "string", + "description": "Unique identifier of applied license file\n" + }, + "licenseStatus": { + "type": "string", + "description": "Device license registration status\n* APPLYING_LICENSE\n* REGISTERED\n* APPLIED\n* WAITING_FOR_CLUSTER_SETUP\n* REGISTRATION_FAILED\n* NA\n" + }, + "licenseToken": { + "type": "string", + "description": "License Token applicable for some device types in BYOL licensing mode\n" + }, + "metroCode": { + "type": "string", + "description": "Device location metro code\n" + }, + "mgmtAclTemplateUuid": { + "type": "string", + "description": "Unique identifier of applied MGMT ACL template\n" + }, + "name": { + "type": "string", + "description": "Name of an existing Equinix Network Edge device\n" + }, + "notifications": { + "type": "array", + "items": { + "type": "string" + }, + "description": "List of email addresses that will receive device status notifications\n" + }, + "projectId": { + "type": "string", + "description": "The unique identifier of Project Resource to which device is scoped to\n" + }, + "redundancyType": { + "type": "string", + "description": "Device redundancy type applicable for HA devices, either primary or secondary\n" + }, + "redundantId": { + "type": "string", + "description": "Unique identifier for a redundant device applicable for HA devices\n" + }, + "region": { + "type": "string", + "description": "Device location region\n" + }, + "sshIpAddress": { + "type": "string", + "description": "IP address of SSH enabled interface on the device\n" + }, + "sshIpFqdn": { + "type": "string", + "description": "FQDN of SSH enabled interface on the device\n" + }, + "sshKeys": { + "type": "array", + "items": { + "$ref": "#/types/equinix:networkedge/getDeviceSecondaryDeviceSshKey:getDeviceSecondaryDeviceSshKey" + }, + "description": "Definition of SSH key that will be provisioned on a device\n" + }, + "status": { + "type": "string", + "description": "Device provisioning status\n* INITIALIZING\n* PROVISIONING\n* PROVISIONED (**NOTE: By default data source will only return devices in this state. To include other states see `valid_state_list`**)\n* WAITING_FOR_PRIMARY\n* WAITING_FOR_SECONDARY\n* WAITING_FOR_REPLICA_CLUSTER_NODES\n* CLUSTER_SETUP_IN_PROGRESS\n* FAILED\n* DEPROVISIONING\n* DEPROVISIONED\n* RESOURCE_UPGRADE_IN_PROGRESS\n* RESOURCE_UPGRADE_FAILED\n" + }, + "uuid": { + "type": "string", + "description": "UUID of an existing Equinix Network Edge device\n" + }, + "vendorConfiguration": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress)\n" + }, + "wanInterfaceId": { + "type": "string", + "description": "device interface id picked for WAN\n" + }, + "zoneCode": { + "type": "string", + "description": "Device location zone code\n" + } + }, + "type": "object", + "required": [ + "accountNumber", + "aclTemplateId", + "additionalBandwidth", + "asn", + "cloudInitFileId", + "hostname", + "ibx", + "interfaces", + "licenseFile", + "licenseFileId", + "licenseStatus", + "licenseToken", + "metroCode", + "mgmtAclTemplateUuid", + "name", + "notifications", + "projectId", + "redundancyType", + "redundantId", + "region", + "sshIpAddress", + "sshIpFqdn", + "sshKeys", + "status", + "uuid", + "vendorConfiguration", + "wanInterfaceId", + "zoneCode" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceSecondaryDeviceInterface:getDeviceSecondaryDeviceInterface": { + "properties": { + "assignedType": { + "type": "string", + "description": "Interface management type (Equinix Managed or empty)\n" + }, + "id": { + "type": "integer", + "description": "Interface identifier\n" + }, + "ipAddress": { + "type": "string", + "description": "interface IP address\n" + }, + "macAddress": { + "type": "string", + "description": "Interface MAC addres\n" + }, + "name": { + "type": "string", + "description": "Name of an existing Equinix Network Edge device\n" + }, + "operationalStatus": { + "type": "string", + "description": "Interface operational status (up or down)\n" + }, + "status": { + "type": "string", + "description": "Device provisioning status\n* INITIALIZING\n* PROVISIONING\n* PROVISIONED (**NOTE: By default data source will only return devices in this state. To include other states see `valid_state_list`**)\n* WAITING_FOR_PRIMARY\n* WAITING_FOR_SECONDARY\n* WAITING_FOR_REPLICA_CLUSTER_NODES\n* CLUSTER_SETUP_IN_PROGRESS\n* FAILED\n* DEPROVISIONING\n* DEPROVISIONED\n* RESOURCE_UPGRADE_IN_PROGRESS\n* RESOURCE_UPGRADE_FAILED\n" + }, + "type": { + "type": "string", + "description": "Interface type\n" + } + }, + "type": "object", + "required": [ + "assignedType", + "id", + "ipAddress", + "macAddress", + "name", + "operationalStatus", + "status", + "type" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceSecondaryDeviceSshKey:getDeviceSecondaryDeviceSshKey": { + "properties": { + "keyName": { + "type": "string", + "description": "Reference by name to previously provisioned public SSH key\n" + }, + "username": { + "type": "string", + "description": "Username associated with given key\n" + } + }, + "type": "object", + "required": [ + "keyName", + "username" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/getDeviceSshKey:getDeviceSshKey": { + "properties": { + "keyName": { + "type": "string", + "description": "Reference by name to previously provisioned public SSH key\n" + }, + "username": { + "type": "string", + "description": "Username associated with given key\n" + } + }, + "type": "object", + "required": [ + "keyName", + "username" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } + }, + "equinix:networkedge/throughputUnit:ThroughputUnit": { + "type": "string", + "enum": [ + { + "name": "Mbps", + "value": "Mbps" + }, + { + "name": "Gbps", + "value": "Gbps" + } + ] + } + }, + "provider": { + "description": "The provider type for the equinix package. By default, resources use package-wide configuration\nsettings, however an explicit `Provider` instance may be created and passed during resource\nconstruction to achieve fine-grained programmatic control over provider settings. See the\n[documentation](https://www.pulumi.com/docs/reference/programming-model/#providers) for more information.\n", + "properties": { + "authToken": { + "type": "string", + "description": "The Equinix Metal API auth key for API operations\n" + }, + "clientId": { + "type": "string", + "description": "API Consumer Key available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTID` shell environment variable.\n" + }, + "clientSecret": { + "type": "string", + "description": "API Consumer secret available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTSECRET` shell environment variable.\n" + }, + "endpoint": { + "type": "string", + "description": "The Equinix API base URL to point out desired environment. This argument can also be specified with the\n`EQUINIX_API_ENDPOINT` shell environment variable. (Defaults to `https://api.equinix.com`)\n" + }, + "maxRetries": { + "type": "integer", + "description": "Maximum number of retries in case of network failure.\n" + }, + "maxRetryWaitSeconds": { + "type": "integer", + "description": "Maximum number of seconds to wait before retrying a request.\n" + }, + "requestTimeout": { + "type": "integer", + "description": "The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request.\nCanceled requests may still result in provisioned resources. (Defaults to `30`)\n" + }, + "responseMaxPageSize": { + "type": "integer", + "description": "The maximum number of records in a single response for REST queries that produce paginated responses. (Default is client\nspecific)\n" + }, + "token": { + "type": "string", + "description": "API tokens are generated from API Consumer clients using the [OAuth2\nAPI](https://developer.equinix.com/dev-docs/fabric/getting-started/getting-access-token#request-access-and-refresh-tokens).\nThis argument can also be specified with the `EQUINIX_API_TOKEN` shell environment variable.\n" + } + }, + "inputProperties": { + "authToken": { + "type": "string", + "description": "The Equinix Metal API auth key for API operations\n" + }, + "clientId": { + "type": "string", + "description": "API Consumer Key available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTID` shell environment variable.\n" + }, + "clientSecret": { + "type": "string", + "description": "API Consumer secret available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTSECRET` shell environment variable.\n" + }, + "endpoint": { + "type": "string", + "description": "The Equinix API base URL to point out desired environment. This argument can also be specified with the\n`EQUINIX_API_ENDPOINT` shell environment variable. (Defaults to `https://api.equinix.com`)\n" + }, + "maxRetries": { + "type": "integer", + "description": "Maximum number of retries in case of network failure.\n" + }, + "maxRetryWaitSeconds": { + "type": "integer", + "description": "Maximum number of seconds to wait before retrying a request.\n" + }, + "requestTimeout": { + "type": "integer", + "description": "The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request.\nCanceled requests may still result in provisioned resources. (Defaults to `30`)\n" + }, + "responseMaxPageSize": { + "type": "integer", + "description": "The maximum number of records in a single response for REST queries that produce paginated responses. (Default is client\nspecific)\n" + }, + "token": { + "type": "string", + "description": "API tokens are generated from API Consumer clients using the [OAuth2\nAPI](https://developer.equinix.com/dev-docs/fabric/getting-started/getting-access-token#request-access-and-refresh-tokens).\nThis argument can also be specified with the `EQUINIX_API_TOKEN` shell environment variable.\n" + } + } + }, + "resources": { + "equinix:fabric/cloudRouter:CloudRouter": { + "description": "Fabric V4 API compatible resource allows creation and management of [Equinix Fabric Cloud Router](https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-intro.htm#HowItWorks).\n\nAdditional documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-intro.htm#HowItWorks\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#fabric-cloud-routers\n\n{{% examples %}}\n## Example Usage\n\n{{% example %}}\n### example 1\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst newCloudRouter = new equinix.fabric.CloudRouter(\"newCloudRouter\", {\n name: \"Router-SV\",\n type: \"XF_ROUTER\",\n notifications: [{\n type: \"ALL\",\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n location: {\n metroCode: \"SV\",\n },\n \"package\": {\n code: \"STANDARD\",\n },\n project: {\n projectId: \"776847000642406\",\n },\n account: {\n accountNumber: 203612,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nnew_cloud_router = equinix.fabric.CloudRouter(\"newCloudRouter\",\n name=\"Router-SV\",\n type=\"XF_ROUTER\",\n notifications=[{\n \"type\": \"ALL\",\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n location={\n \"metro_code\": \"SV\",\n },\n package={\n \"code\": \"STANDARD\",\n },\n project={\n \"project_id\": \"776847000642406\",\n },\n account={\n \"account_number\": 203612,\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewCloudRouter(ctx, \"newCloudRouter\", \u0026fabric.CloudRouterArgs{\n\t\t\tName: pulumi.String(\"Router-SV\"),\n\t\t\tType: pulumi.String(\"XF_ROUTER\"),\n\t\t\tNotifications: fabric.CloudRouterNotificationArray{\n\t\t\t\t\u0026fabric.CloudRouterNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"ALL\"),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrder: \u0026fabric.CloudRouterOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tLocation: \u0026fabric.CloudRouterLocationArgs{\n\t\t\t\tMetroCode: pulumi.String(\"SV\"),\n\t\t\t},\n\t\t\tPackage: \u0026fabric.CloudRouterPackageArgs{\n\t\t\t\tCode: pulumi.String(\"STANDARD\"),\n\t\t\t},\n\t\t\tProject: \u0026fabric.CloudRouterProjectArgs{\n\t\t\t\tProjectId: pulumi.String(\"776847000642406\"),\n\t\t\t},\n\t\t\tAccount: \u0026fabric.CloudRouterAccountArgs{\n\t\t\t\tAccountNumber: pulumi.Int(203612),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var newCloudRouter = new Equinix.Fabric.CloudRouter(\"newCloudRouter\", new()\n {\n Name = \"Router-SV\",\n Type = \"XF_ROUTER\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.CloudRouterNotificationArgs\n {\n Type = \"ALL\",\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Order = new Equinix.Fabric.Inputs.CloudRouterOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n Location = new Equinix.Fabric.Inputs.CloudRouterLocationArgs\n {\n MetroCode = \"SV\",\n },\n Package = new Equinix.Fabric.Inputs.CloudRouterPackageArgs\n {\n Code = \"STANDARD\",\n },\n Project = new Equinix.Fabric.Inputs.CloudRouterProjectArgs\n {\n ProjectId = \"776847000642406\",\n },\n Account = new Equinix.Fabric.Inputs.CloudRouterAccountArgs\n {\n AccountNumber = 203612,\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.CloudRouter;\nimport com.pulumi.equinix.fabric.CloudRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterLocationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterPackageArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterProjectArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var newCloudRouter = new CloudRouter(\"newCloudRouter\", CloudRouterArgs.builder()\n .name(\"Router-SV\")\n .type(\"XF_ROUTER\")\n .notifications(CloudRouterNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .order(CloudRouterOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .location(CloudRouterLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .package_(CloudRouterPackageArgs.builder()\n .code(\"STANDARD\")\n .build())\n .project(CloudRouterProjectArgs.builder()\n .projectId(\"776847000642406\")\n .build())\n .account(CloudRouterAccountArgs.builder()\n .accountNumber(\"203612\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newCloudRouter:\n type: equinix:fabric:CloudRouter\n name: new_cloud_router\n properties:\n name: Router-SV\n type: XF_ROUTER\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n order:\n purchaseOrderNumber: 1-323292\n location:\n metroCode: SV\n package:\n code: STANDARD\n project:\n projectId: '776847000642406'\n account:\n accountNumber: '203612'\n```\n{{% /example %}}\n\n{{% example %}}\n### example 2\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst newCloudRouter = new equinix.fabric.CloudRouter(\"newCloudRouter\", {\n name: \"Router-SV\",\n type: \"XF_ROUTER\",\n notifications: [{\n type: \"ALL\",\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n location: {\n metroCode: \"SV\",\n },\n \"package\": {\n code: \"STANDARD\",\n },\n project: {\n projectId: \"776847000642406\",\n },\n marketplaceSubscription: {\n type: \"AWS_MARKETPLACE_SUBSCRIPTION\",\n uuid: \"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nnew_cloud_router = equinix.fabric.CloudRouter(\"newCloudRouter\",\n name=\"Router-SV\",\n type=\"XF_ROUTER\",\n notifications=[{\n \"type\": \"ALL\",\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n location={\n \"metro_code\": \"SV\",\n },\n package={\n \"code\": \"STANDARD\",\n },\n project={\n \"project_id\": \"776847000642406\",\n },\n marketplace_subscription={\n \"type\": \"AWS_MARKETPLACE_SUBSCRIPTION\",\n \"uuid\": \"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\",\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewCloudRouter(ctx, \"newCloudRouter\", \u0026fabric.CloudRouterArgs{\n\t\t\tName: pulumi.String(\"Router-SV\"),\n\t\t\tType: pulumi.String(\"XF_ROUTER\"),\n\t\t\tNotifications: fabric.CloudRouterNotificationArray{\n\t\t\t\t\u0026fabric.CloudRouterNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"ALL\"),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrder: \u0026fabric.CloudRouterOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tLocation: \u0026fabric.CloudRouterLocationArgs{\n\t\t\t\tMetroCode: pulumi.String(\"SV\"),\n\t\t\t},\n\t\t\tPackage: \u0026fabric.CloudRouterPackageArgs{\n\t\t\t\tCode: pulumi.String(\"STANDARD\"),\n\t\t\t},\n\t\t\tProject: \u0026fabric.CloudRouterProjectArgs{\n\t\t\t\tProjectId: pulumi.String(\"776847000642406\"),\n\t\t\t},\n\t\t\tMarketplaceSubscription: \u0026fabric.CloudRouterMarketplaceSubscriptionArgs{\n\t\t\t\tType: pulumi.String(\"AWS_MARKETPLACE_SUBSCRIPTION\"),\n\t\t\t\tUuid: pulumi.String(\"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var newCloudRouter = new Equinix.Fabric.CloudRouter(\"newCloudRouter\", new()\n {\n Name = \"Router-SV\",\n Type = \"XF_ROUTER\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.CloudRouterNotificationArgs\n {\n Type = \"ALL\",\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Order = new Equinix.Fabric.Inputs.CloudRouterOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n Location = new Equinix.Fabric.Inputs.CloudRouterLocationArgs\n {\n MetroCode = \"SV\",\n },\n Package = new Equinix.Fabric.Inputs.CloudRouterPackageArgs\n {\n Code = \"STANDARD\",\n },\n Project = new Equinix.Fabric.Inputs.CloudRouterProjectArgs\n {\n ProjectId = \"776847000642406\",\n },\n MarketplaceSubscription = new Equinix.Fabric.Inputs.CloudRouterMarketplaceSubscriptionArgs\n {\n Type = \"AWS_MARKETPLACE_SUBSCRIPTION\",\n Uuid = \"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\",\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.CloudRouter;\nimport com.pulumi.equinix.fabric.CloudRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterLocationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterPackageArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterProjectArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterMarketplaceSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var newCloudRouter = new CloudRouter(\"newCloudRouter\", CloudRouterArgs.builder()\n .name(\"Router-SV\")\n .type(\"XF_ROUTER\")\n .notifications(CloudRouterNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .order(CloudRouterOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .location(CloudRouterLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .package_(CloudRouterPackageArgs.builder()\n .code(\"STANDARD\")\n .build())\n .project(CloudRouterProjectArgs.builder()\n .projectId(\"776847000642406\")\n .build())\n .marketplaceSubscription(CloudRouterMarketplaceSubscriptionArgs.builder()\n .type(\"AWS_MARKETPLACE_SUBSCRIPTION\")\n .uuid(\"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newCloudRouter:\n type: equinix:fabric:CloudRouter\n name: new_cloud_router\n properties:\n name: Router-SV\n type: XF_ROUTER\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n order:\n purchaseOrderNumber: 1-323292\n location:\n metroCode: SV\n package:\n code: STANDARD\n project:\n projectId: '776847000642406'\n marketplaceSubscription:\n type: AWS_MARKETPLACE_SUBSCRIPTION\n uuid: 2823b8ae07-a2a2-45b4-a658-c3542bb24e9\n```\n{{% /example %}}\n\n{{% /examples %}}", + "properties": { + "account": { + "$ref": "#/types/equinix:fabric/CloudRouterAccount:CloudRouterAccount", + "description": "Customer account information that is associated with this Fabric Cloud Router\n" + }, + "bgpIpv4RoutesCount": { + "type": "integer", + "description": "Number of IPv4 BGP routes in use (including non-distinct prefixes)\n" + }, + "bgpIpv6RoutesCount": { + "type": "integer", + "description": "Number of IPv6 BGP routes in use (including non-distinct prefixes)\n" + }, + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/CloudRouterChangeLog:CloudRouterChangeLog" + }, + "description": "Captures Fabric Cloud Router lifecycle change information\n" + }, + "connectionsCount": { + "type": "integer", + "description": "Number of connections associated with this Fabric Cloud Router instance\n" + }, + "description": { + "type": "string", + "description": "Customer-provided Fabric Cloud Router description\n" + }, + "distinctIpv4PrefixesCount": { + "type": "integer", + "description": "Number of distinct IPv4 routes\n" + }, + "distinctIpv6PrefixesCount": { + "type": "integer", + "description": "Number of distinct IPv6 routes\n" + }, + "equinixAsn": { + "type": "integer", + "description": "Equinix ASN\n" + }, + "href": { + "type": "string", + "description": "Fabric Cloud Router URI information\n" + }, + "location": { + "$ref": "#/types/equinix:fabric/CloudRouterLocation:CloudRouterLocation", + "description": "Fabric Cloud Router location\n" + }, + "marketplaceSubscription": { + "$ref": "#/types/equinix:fabric/CloudRouterMarketplaceSubscription:CloudRouterMarketplaceSubscription", + "description": "Equinix Fabric Entity for Marketplace Subscription\n" + }, + "name": { + "type": "string", + "description": "Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/CloudRouterNotification:CloudRouterNotification" + }, + "description": "Preferences for notifications on Fabric Cloud Router configuration or status changes\n" + }, + "order": { + "$ref": "#/types/equinix:fabric/CloudRouterOrder:CloudRouterOrder", + "description": "Order information related to this Fabric Cloud Router\n" + }, + "package": { + "$ref": "#/types/equinix:fabric/CloudRouterPackage:CloudRouterPackage", + "description": "Fabric Cloud Router Package Type\n" + }, + "project": { + "$ref": "#/types/equinix:fabric/CloudRouterProject:CloudRouterProject", + "description": "Customer resource hierarchy project information. Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects\n" + }, + "state": { + "type": "string", + "description": "Fabric Cloud Router overall state\n" + }, + "type": { + "type": "string", + "description": "Defines the FCR type like; XF_ROUTER\n" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned Fabric Cloud Router identifier\n" + } + }, + "required": [ + "account", + "bgpIpv4RoutesCount", + "bgpIpv6RoutesCount", + "changeLogs", + "connectionsCount", + "distinctIpv4PrefixesCount", + "distinctIpv6PrefixesCount", + "equinixAsn", + "href", + "location", + "marketplaceSubscription", + "name", + "notifications", + "order", + "package", + "project", + "state", + "type", + "uuid" + ], + "inputProperties": { + "account": { + "$ref": "#/types/equinix:fabric/CloudRouterAccount:CloudRouterAccount", + "description": "Customer account information that is associated with this Fabric Cloud Router\n" + }, + "description": { + "type": "string", + "description": "Customer-provided Fabric Cloud Router description\n" + }, + "href": { + "type": "string", + "description": "Fabric Cloud Router URI information\n" + }, + "location": { + "$ref": "#/types/equinix:fabric/CloudRouterLocation:CloudRouterLocation", + "description": "Fabric Cloud Router location\n" + }, + "marketplaceSubscription": { + "$ref": "#/types/equinix:fabric/CloudRouterMarketplaceSubscription:CloudRouterMarketplaceSubscription", + "description": "Equinix Fabric Entity for Marketplace Subscription\n" + }, + "name": { + "type": "string", + "description": "Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/CloudRouterNotification:CloudRouterNotification" + }, + "description": "Preferences for notifications on Fabric Cloud Router configuration or status changes\n" + }, + "order": { + "$ref": "#/types/equinix:fabric/CloudRouterOrder:CloudRouterOrder", + "description": "Order information related to this Fabric Cloud Router\n" + }, + "package": { + "$ref": "#/types/equinix:fabric/CloudRouterPackage:CloudRouterPackage", + "description": "Fabric Cloud Router Package Type\n" + }, + "project": { + "$ref": "#/types/equinix:fabric/CloudRouterProject:CloudRouterProject", + "description": "Customer resource hierarchy project information. Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects\n" + }, + "type": { + "type": "string", + "description": "Defines the FCR type like; XF_ROUTER\n" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned Fabric Cloud Router identifier\n" + } + }, + "requiredInputs": [ + "location", + "notifications", + "package", + "project", + "type" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering CloudRouter resources.\n", + "properties": { + "account": { + "$ref": "#/types/equinix:fabric/CloudRouterAccount:CloudRouterAccount", + "description": "Customer account information that is associated with this Fabric Cloud Router\n" + }, + "bgpIpv4RoutesCount": { + "type": "integer", + "description": "Number of IPv4 BGP routes in use (including non-distinct prefixes)\n" + }, + "bgpIpv6RoutesCount": { + "type": "integer", + "description": "Number of IPv6 BGP routes in use (including non-distinct prefixes)\n" + }, + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/CloudRouterChangeLog:CloudRouterChangeLog" + }, + "description": "Captures Fabric Cloud Router lifecycle change information\n" + }, + "connectionsCount": { + "type": "integer", + "description": "Number of connections associated with this Fabric Cloud Router instance\n" + }, + "description": { + "type": "string", + "description": "Customer-provided Fabric Cloud Router description\n" + }, + "distinctIpv4PrefixesCount": { + "type": "integer", + "description": "Number of distinct IPv4 routes\n" + }, + "distinctIpv6PrefixesCount": { + "type": "integer", + "description": "Number of distinct IPv6 routes\n" + }, + "equinixAsn": { + "type": "integer", + "description": "Equinix ASN\n" + }, + "href": { + "type": "string", + "description": "Fabric Cloud Router URI information\n" + }, + "location": { + "$ref": "#/types/equinix:fabric/CloudRouterLocation:CloudRouterLocation", + "description": "Fabric Cloud Router location\n" + }, + "marketplaceSubscription": { + "$ref": "#/types/equinix:fabric/CloudRouterMarketplaceSubscription:CloudRouterMarketplaceSubscription", + "description": "Equinix Fabric Entity for Marketplace Subscription\n" + }, + "name": { + "type": "string", + "description": "Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/CloudRouterNotification:CloudRouterNotification" + }, + "description": "Preferences for notifications on Fabric Cloud Router configuration or status changes\n" + }, + "order": { + "$ref": "#/types/equinix:fabric/CloudRouterOrder:CloudRouterOrder", + "description": "Order information related to this Fabric Cloud Router\n" + }, + "package": { + "$ref": "#/types/equinix:fabric/CloudRouterPackage:CloudRouterPackage", + "description": "Fabric Cloud Router Package Type\n" + }, + "project": { + "$ref": "#/types/equinix:fabric/CloudRouterProject:CloudRouterProject", + "description": "Customer resource hierarchy project information. Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects\n" + }, + "state": { + "type": "string", + "description": "Fabric Cloud Router overall state\n" + }, + "type": { + "type": "string", + "description": "Defines the FCR type like; XF_ROUTER\n" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned Fabric Cloud Router identifier\n" + } + }, + "type": "object" + } + }, + "equinix:fabric/connection:Connection": { + "description": "\n\n{{% examples %}}\n## Example Usage\n\n{{% example %}}\n### example fcr to azure\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Azure = new equinix.fabric.Connection(\"fcr2azure\", {\n name: \"ConnectionName\",\n type: \"IP_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_azure = equinix.fabric.Connection(\"fcr2azure\",\n name=\"ConnectionName\",\n type=\"IP_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2azure\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IP_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Azure = new Equinix.Fabric.Connection(\"fcr2azure\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IP_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Azure = new Connection(\"fcr2Azure\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IP_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2azure:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IP_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example fcr to metal\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Metal = new equinix.fabric.Connection(\"fcr2metal\", {\n name: \"ConnectionName\",\n type: \"IP_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: \"METAL_NETWORK\",\n authenticationKey: \"\u003cmetal_authorization_code\u003e\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_metal = equinix.fabric.Connection(\"fcr2metal\",\n name=\"ConnectionName\",\n type=\"IP_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": \"METAL_NETWORK\",\n \"authentication_key\": \"\u003cmetal_authorization_code\u003e\",\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2metal\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IP_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"METAL_NETWORK\"),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cmetal_authorization_code\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Metal = new Equinix.Fabric.Connection(\"fcr2metal\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IP_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = \"METAL_NETWORK\",\n AuthenticationKey = \"\u003cmetal_authorization_code\u003e\",\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Metal = new Connection(\"fcr2Metal\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IP_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"METAL_NETWORK\")\n .authenticationKey(\"\u003cmetal_authorization_code\u003e\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2metal:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IP_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: METAL_NETWORK\n authenticationKey: \u003cmetal_authorization_code\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example fcr to network\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Network = new equinix.fabric.Connection(\"fcr2network\", {\n name: \"ConnectionName\",\n type: \"IPWAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_network = equinix.fabric.Connection(\"fcr2network\",\n name=\"ConnectionName\",\n type=\"IPWAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2network\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IPWAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Network = new Equinix.Fabric.Connection(\"fcr2network\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IPWAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Network = new Connection(\"fcr2Network\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IPWAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2network:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IPWAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example fcr to port\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Port = new equinix.fabric.Connection(\"fcr2port\", {\n name: \"ConnectionName\",\n type: \"IP_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003cport_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,\n vlanTag: 2711,\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_port = equinix.fabric.Connection(\"fcr2port\",\n name=\"ConnectionName\",\n type=\"IP_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003cport_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,\n \"vlan_tag\": 2711,\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2port\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IP_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cport_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionZSideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),\n\t\t\t\t\t\tVlanTag: pulumi.Int(2711),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Port = new Equinix.Fabric.Connection(\"fcr2port\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IP_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003cport_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,\n VlanTag = 2711,\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Port = new Connection(\"fcr2Port\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IP_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003cport_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()\n .type(\"DOT1Q\")\n .vlanTag(\"2711\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2port:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IP_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003cport_uuid\u003e\n linkProtocol:\n type: DOT1Q\n vlanTag: '2711'\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example metal to aws\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst metal2Aws = new equinix.fabric.Connection(\"metal2aws\", {\n name: \"ConnectionName\",\n type: \"EVPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"METAL_NETWORK\",\n authenticationKey: \"\u003cmetal_authorization_code\u003e\",\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003caws_account_id\u003e\",\n sellerRegion: \"us-west-1\",\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cservice_profile_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nmetal2_aws = equinix.fabric.Connection(\"metal2aws\",\n name=\"ConnectionName\",\n type=\"EVPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"METAL_NETWORK\",\n \"authentication_key\": \"\u003cmetal_authorization_code\u003e\",\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003caws_account_id\u003e\",\n \"seller_region\": \"us-west-1\",\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cservice_profile_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"metal2aws\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EVPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"METAL_NETWORK\"),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cmetal_authorization_code\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003caws_account_id\u003e\"),\n\t\t\t\t\tSellerRegion: pulumi.String(\"us-west-1\"),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_profile_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var metal2Aws = new Equinix.Fabric.Connection(\"metal2aws\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EVPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"METAL_NETWORK\",\n AuthenticationKey = \"\u003cmetal_authorization_code\u003e\",\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003caws_account_id\u003e\",\n SellerRegion = \"us-west-1\",\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cservice_profile_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var metal2Aws = new Connection(\"metal2Aws\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"METAL_NETWORK\")\n .authenticationKey(\"\u003cmetal_authorization_code\u003e\")\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003caws_account_id\u003e\")\n .sellerRegion(\"us-west-1\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cservice_profile_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n metal2aws:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: METAL_NETWORK\n authenticationKey: \u003cmetal_authorization_code\u003e\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003caws_account_id\u003e\n sellerRegion: us-west-1\n profile:\n type: L2_PROFILE\n uuid: \u003cservice_profile_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to aws\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst port2Aws = new equinix.fabric.Connection(\"port2aws\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n redundancy: {\n priority: \"PRIMARY\",\n },\n order: {\n purchaseOrderNumber: \"1-323929\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 2019,\n vlanCTag: 2112,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003caws_account_id\u003e\",\n sellerRegion: \"us-west-1\",\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cservice_profile_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n additionalInfo: [\n {\n key: \"accessKey\",\n value: \"\u003caws_access_key\u003e\",\n },\n {\n key: \"secretKey\",\n value: \"\u003caws_secret_key\u003e\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nport2_aws = equinix.fabric.Connection(\"port2aws\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n redundancy={\n \"priority\": \"PRIMARY\",\n },\n order={\n \"purchase_order_number\": \"1-323929\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 2019,\n \"vlan_c_tag\": 2112,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003caws_account_id\u003e\",\n \"seller_region\": \"us-west-1\",\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cservice_profile_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n },\n additional_info=[\n {\n \"key\": \"accessKey\",\n \"value\": \"\u003caws_access_key\u003e\",\n },\n {\n \"key\": \"secretKey\",\n \"value\": \"\u003caws_secret_key\u003e\",\n },\n ])\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"port2aws\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tRedundancy: \u0026fabric.ConnectionRedundancyArgs{\n\t\t\t\tPriority: pulumi.String(\"PRIMARY\"),\n\t\t\t},\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323929\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(2019),\n\t\t\t\t\t\tVlanCTag: pulumi.Int(2112),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003caws_account_id\u003e\"),\n\t\t\t\t\tSellerRegion: pulumi.String(\"us-west-1\"),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_profile_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdditionalInfo: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"key\": pulumi.String(\"accessKey\"),\n\t\t\t\t\t\"value\": pulumi.String(\"\u003caws_access_key\u003e\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"key\": pulumi.String(\"secretKey\"),\n\t\t\t\t\t\"value\": pulumi.String(\"\u003caws_secret_key\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port2Aws = new Equinix.Fabric.Connection(\"port2aws\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Redundancy = new Equinix.Fabric.Inputs.ConnectionRedundancyArgs\n {\n Priority = \"PRIMARY\",\n },\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323929\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 2019,\n VlanCTag = 2112,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003caws_account_id\u003e\",\n SellerRegion = \"us-west-1\",\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cservice_profile_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n AdditionalInfo = new[]\n {\n \n {\n { \"key\", \"accessKey\" },\n { \"value\", \"\u003caws_access_key\u003e\" },\n },\n \n {\n { \"key\", \"secretKey\" },\n { \"value\", \"\u003caws_secret_key\u003e\" },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionRedundancyArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var port2Aws = new Connection(\"port2Aws\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .redundancy(ConnectionRedundancyArgs.builder()\n .priority(\"PRIMARY\")\n .build())\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323929\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"2019\")\n .vlanCTag(\"2112\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003caws_account_id\u003e\")\n .sellerRegion(\"us-west-1\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cservice_profile_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .additionalInfo( \n Map.ofEntries(\n Map.entry(\"key\", \"accessKey\"),\n Map.entry(\"value\", \"\u003caws_access_key\u003e\")\n ),\n Map.ofEntries(\n Map.entry(\"key\", \"secretKey\"),\n Map.entry(\"value\", \"\u003caws_secret_key\u003e\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port2aws:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n redundancy:\n priority: PRIMARY\n order:\n purchaseOrderNumber: 1-323929\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '2019'\n vlanCTag: '2112'\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003caws_account_id\u003e\n sellerRegion: us-west-1\n profile:\n type: L2_PROFILE\n uuid: \u003cservice_profile_uuid\u003e\n location:\n metroCode: SV\n additionalInfo:\n - key: accessKey\n value: \u003caws_access_key\u003e\n - key: secretKey\n value: \u003caws_secret_key\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to network eplan\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst eplan = new equinix.fabric.Connection(\"eplan\", {\n name: \"ConnectionName\",\n type: \"EPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\neplan = equinix.fabric.Connection(\"eplan\",\n name=\"ConnectionName\",\n type=\"EPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"eplan\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eplan = new Equinix.Fabric.Connection(\"eplan\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eplan = new Connection(\"eplan\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eplan:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to network evplan\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst evplan = new equinix.fabric.Connection(\"evplan\", {\n name: \"ConnectionName\",\n type: \"EVPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,\n vlanSTag: 1976,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nevplan = equinix.fabric.Connection(\"evplan\",\n name=\"ConnectionName\",\n type=\"EVPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,\n \"vlan_s_tag\": 1976,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"evplan\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EVPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(1976),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var evplan = new Equinix.Fabric.Connection(\"evplan\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EVPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,\n VlanSTag = 1976,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var evplan = new Connection(\"evplan\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"DOT1Q\")\n .vlanSTag(\"1976\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n evplan:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: DOT1Q\n vlanSTag: '1976'\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to port\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst port2Port = new equinix.fabric.Connection(\"port2port\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 1976,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 3711,\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nport2_port = equinix.fabric.Connection(\"port2port\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 1976,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 3711,\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"port2port\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(1976),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionZSideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(3711),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port2Port = new Equinix.Fabric.Connection(\"port2port\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 1976,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 3711,\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var port2Port = new Connection(\"port2Port\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"1976\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"3711\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port2port:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '1976'\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '3711'\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to port access epl\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst accessEplVc = new equinix.fabric.Connection(\"accessEplVc\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.AccessEPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 1976,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\naccess_epl_vc = equinix.fabric.Connection(\"accessEplVc\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.ACCESS_EPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 1976,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"accessEplVc\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeAccessEPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(1976),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var accessEplVc = new Equinix.Fabric.Connection(\"accessEplVc\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.AccessEPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 1976,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var accessEplVc = new Connection(\"accessEplVc\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"ACCESS_EPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"1976\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n accessEplVc:\n type: equinix:fabric:Connection\n name: access_epl_vc\n properties:\n name: ConnectionName\n type: ACCESS_EPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '1976'\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to port epl\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst epl = new equinix.fabric.Connection(\"epl\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nepl = equinix.fabric.Connection(\"epl\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"epl\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var epl = new Equinix.Fabric.Connection(\"epl\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var epl = new Connection(\"epl\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n epl:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to vd\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Port = new equinix.fabric.Connection(\"vd2port\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"NETWORK\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,\n vlanSTag: 3711,\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_port = equinix.fabric.Connection(\"vd2port\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"NETWORK\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,\n \"vlan_s_tag\": 3711,\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2port\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NETWORK\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionZSideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(3711),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Port = new Equinix.Fabric.Connection(\"vd2port\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"NETWORK\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,\n VlanSTag = 3711,\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Port = new Connection(\"vd2Port\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"NETWORK\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()\n .type(\"DOT1Q\")\n .vlanSTag(\"3711\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2port:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: NETWORK\n id: 7\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n linkProtocol:\n type: DOT1Q\n vlanSTag: '3711'\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example token to aws\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst token2Aws = new equinix.fabric.Connection(\"token2aws\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n serviceToken: {\n uuid: \"\u003cservice_token_uuid\u003e\",\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003caws_account_id\u003e\",\n sellerRegion: \"us-west-1\",\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cservice_profile_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\ntoken2_aws = equinix.fabric.Connection(\"token2aws\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"service_token\": {\n \"uuid\": \"\u003cservice_token_uuid\u003e\",\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003caws_account_id\u003e\",\n \"seller_region\": \"us-west-1\",\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cservice_profile_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"token2aws\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tServiceToken: \u0026fabric.ConnectionASideServiceTokenArgs{\n\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_token_uuid\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003caws_account_id\u003e\"),\n\t\t\t\t\tSellerRegion: pulumi.String(\"us-west-1\"),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_profile_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var token2Aws = new Equinix.Fabric.Connection(\"token2aws\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n ServiceToken = new Equinix.Fabric.Inputs.ConnectionASideServiceTokenArgs\n {\n Uuid = \"\u003cservice_token_uuid\u003e\",\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003caws_account_id\u003e\",\n SellerRegion = \"us-west-1\",\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cservice_profile_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideServiceTokenArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var token2Aws = new Connection(\"token2Aws\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .serviceToken(ConnectionASideServiceTokenArgs.builder()\n .uuid(\"\u003cservice_token_uuid\u003e\")\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003caws_account_id\u003e\")\n .sellerRegion(\"us-west-1\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cservice_profile_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n token2aws:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n serviceToken:\n uuid: \u003cservice_token_uuid\u003e\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003caws_account_id\u003e\n sellerRegion: us-west-1\n profile:\n type: L2_PROFILE\n uuid: \u003cservice_profile_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to azure\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Azure = new equinix.fabric.Connection(\"vd2azure\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_azure = equinix.fabric.Connection(\"vd2azure\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2azure\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Azure = new Equinix.Fabric.Connection(\"vd2azure\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Azure = new Connection(\"vd2Azure\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2azure:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 7\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to azure redundant\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2AzurePrimary = new equinix.fabric.Connection(\"vd2azurePrimary\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n redundancy: {\n priority: \"PRIMARY\",\n },\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\nconst vd2AzureSecondary = new equinix.fabric.Connection(\"vd2azureSecondary\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n redundancy: {\n priority: \"SECONDARY\",\n group: vd2AzurePrimary.redundancy.apply(redundancy =\u003e redundancy?.group),\n },\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 5,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_azure_primary = equinix.fabric.Connection(\"vd2azurePrimary\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n redundancy={\n \"priority\": \"PRIMARY\",\n },\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\nvd2_azure_secondary = equinix.fabric.Connection(\"vd2azureSecondary\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n redundancy={\n \"priority\": \"SECONDARY\",\n \"group\": vd2_azure_primary.redundancy.group,\n },\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 5,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvd2AzurePrimary, err := fabric.NewConnection(ctx, \"vd2azurePrimary\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tRedundancy: \u0026fabric.ConnectionRedundancyArgs{\n\t\t\t\tPriority: pulumi.String(\"PRIMARY\"),\n\t\t\t},\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fabric.NewConnection(ctx, \"vd2azureSecondary\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tRedundancy: \u0026fabric.ConnectionRedundancyArgs{\n\t\t\t\tPriority: pulumi.String(\"SECONDARY\"),\n\t\t\t\tGroup: vd2AzurePrimary.Redundancy.ApplyT(func(redundancy fabric.ConnectionRedundancy) (*string, error) {\n\t\t\t\t\treturn \u0026redundancy.Group, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t},\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2AzurePrimary = new Equinix.Fabric.Connection(\"vd2azurePrimary\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Redundancy = new Equinix.Fabric.Inputs.ConnectionRedundancyArgs\n {\n Priority = \"PRIMARY\",\n },\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n var vd2AzureSecondary = new Equinix.Fabric.Connection(\"vd2azureSecondary\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Redundancy = new Equinix.Fabric.Inputs.ConnectionRedundancyArgs\n {\n Priority = \"SECONDARY\",\n Group = vd2AzurePrimary.Redundancy.Apply(redundancy =\u003e redundancy?.Group),\n },\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 5,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionRedundancyArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2AzurePrimary = new Connection(\"vd2AzurePrimary\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .redundancy(ConnectionRedundancyArgs.builder()\n .priority(\"PRIMARY\")\n .build())\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n var vd2AzureSecondary = new Connection(\"vd2AzureSecondary\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .redundancy(ConnectionRedundancyArgs.builder()\n .priority(\"SECONDARY\")\n .group(vd2AzurePrimary.redundancy().applyValue(redundancy -\u003e redundancy.group()))\n .build())\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(5)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2azurePrimary:\n type: equinix:fabric:Connection\n name: vd2azure_primary\n properties:\n name: ConnectionName\n type: EVPL_VC\n redundancy:\n priority: PRIMARY\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 7\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n vd2azureSecondary:\n type: equinix:fabric:Connection\n name: vd2azure_secondary\n properties:\n name: ConnectionName\n type: EVPL_VC\n redundancy:\n priority: SECONDARY\n group: ${vd2azurePrimary.redundancy.group}\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 5\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to network\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Network = new equinix.fabric.Connection(\"vd2network\", {\n name: \"ConnectionName\",\n type: \"EVPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_network = equinix.fabric.Connection(\"vd2network\",\n name=\"ConnectionName\",\n type=\"EVPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2network\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EVPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Network = new Equinix.Fabric.Connection(\"vd2network\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EVPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Network = new Connection(\"vd2Network\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2network:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 7\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to token\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Token = new equinix.fabric.Connection(\"vd2token\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"NETWORK\",\n id: 7,\n },\n },\n },\n zSide: {\n serviceToken: {\n uuid: \"\u003cservice_token_uuid\u003e\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_token = equinix.fabric.Connection(\"vd2token\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"NETWORK\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"service_token\": {\n \"uuid\": \"\u003cservice_token_uuid\u003e\",\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2token\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NETWORK\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tServiceToken: \u0026fabric.ConnectionZSideServiceTokenArgs{\n\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_token_uuid\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Token = new Equinix.Fabric.Connection(\"vd2token\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"NETWORK\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n ServiceToken = new Equinix.Fabric.Inputs.ConnectionZSideServiceTokenArgs\n {\n Uuid = \"\u003cservice_token_uuid\u003e\",\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideServiceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Token = new Connection(\"vd2Token\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"NETWORK\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .serviceToken(ConnectionZSideServiceTokenArgs.builder()\n .uuid(\"\u003cservice_token_uuid\u003e\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2token:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: NETWORK\n id: 7\n zSide:\n serviceToken:\n uuid: \u003cservice_token_uuid\u003e\n```\n{{% /example %}}\n\n{{% /examples %}}", + "properties": { + "aSide": { + "$ref": "#/types/equinix:fabric/ConnectionASide:ConnectionASide", + "description": "Requester or Customer side connection configuration object of the multi-segment connection\n" + }, + "account": { + "$ref": "#/types/equinix:fabric/ConnectionAccount:ConnectionAccount", + "description": "Customer account information that is associated with this connection\n" + }, + "additionalInfo": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": "Connection additional information\n" + }, + "bandwidth": { + "type": "integer", + "description": "Connection bandwidth in Mbps\n" + }, + "changeLog": { + "$ref": "#/types/equinix:fabric/ConnectionChangeLog:ConnectionChangeLog", + "description": "Captures connection lifecycle change information\n" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description\n" + }, + "direction": { + "type": "string", + "description": "Connection directionality from the requester point of view\n" + }, + "href": { + "type": "string", + "description": "Connection URI information\n" + }, + "isRemote": { + "type": "boolean", + "description": "Connection property derived from access point locations\n" + }, + "name": { + "type": "string", + "description": "Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/ConnectionNotification:ConnectionNotification" + }, + "description": "Preferences for notifications on connection configuration or status changes\n" + }, + "operation": { + "$ref": "#/types/equinix:fabric/ConnectionOperation:ConnectionOperation", + "description": "Connection type-specific operational data\n" + }, + "order": { + "$ref": "#/types/equinix:fabric/ConnectionOrder:ConnectionOrder", + "description": "Order details\n" + }, + "project": { + "$ref": "#/types/equinix:fabric/ConnectionProject:ConnectionProject", + "description": "Project information\n" + }, + "redundancy": { + "$ref": "#/types/equinix:fabric/ConnectionRedundancy:ConnectionRedundancy", + "description": "Connection Redundancy Configuration\n" + }, + "state": { + "type": "string", + "description": "Connection overall state\n" + }, + "type": { + "type": "string", + "description": "Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC\n" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned connection identifier\n" + }, + "zSide": { + "$ref": "#/types/equinix:fabric/ConnectionZSide:ConnectionZSide", + "description": "Destination or Provider side connection configuration object of the multi-segment connection\n" + } + }, + "required": [ + "aSide", + "account", + "bandwidth", + "changeLog", + "direction", + "href", + "isRemote", + "name", + "notifications", + "operation", + "order", + "project", + "state", + "type", + "uuid", + "zSide" + ], + "inputProperties": { + "aSide": { + "$ref": "#/types/equinix:fabric/ConnectionASide:ConnectionASide", + "description": "Requester or Customer side connection configuration object of the multi-segment connection\n" + }, + "additionalInfo": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": "Connection additional information\n" + }, + "bandwidth": { + "type": "integer", + "description": "Connection bandwidth in Mbps\n" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description\n" + }, + "name": { + "type": "string", + "description": "Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/ConnectionNotification:ConnectionNotification" + }, + "description": "Preferences for notifications on connection configuration or status changes\n" + }, + "order": { + "$ref": "#/types/equinix:fabric/ConnectionOrder:ConnectionOrder", + "description": "Order details\n" + }, + "project": { + "$ref": "#/types/equinix:fabric/ConnectionProject:ConnectionProject", + "description": "Project information\n" + }, + "redundancy": { + "$ref": "#/types/equinix:fabric/ConnectionRedundancy:ConnectionRedundancy", + "description": "Connection Redundancy Configuration\n" + }, + "type": { + "type": "string", + "oneOf": [ + { + "type": "string" + }, + { + "type": "string", + "$ref": "#/types/equinix:fabric/connectionType:ConnectionType" + } + ], + "description": "Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC\n" + }, + "zSide": { + "$ref": "#/types/equinix:fabric/ConnectionZSide:ConnectionZSide", + "description": "Destination or Provider side connection configuration object of the multi-segment connection\n" + } + }, + "requiredInputs": [ + "aSide", + "bandwidth", + "notifications", + "type", + "zSide" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering Connection resources.\n", + "properties": { + "aSide": { + "$ref": "#/types/equinix:fabric/ConnectionASide:ConnectionASide", + "description": "Requester or Customer side connection configuration object of the multi-segment connection\n" + }, + "account": { + "$ref": "#/types/equinix:fabric/ConnectionAccount:ConnectionAccount", + "description": "Customer account information that is associated with this connection\n" + }, + "additionalInfo": { + "type": "array", + "items": { + "type": "object", + "additionalProperties": { + "type": "string" + } + }, + "description": "Connection additional information\n" + }, + "bandwidth": { + "type": "integer", + "description": "Connection bandwidth in Mbps\n" + }, + "changeLog": { + "$ref": "#/types/equinix:fabric/ConnectionChangeLog:ConnectionChangeLog", + "description": "Captures connection lifecycle change information\n" + }, + "description": { + "type": "string", + "description": "Customer-provided connection description\n" + }, + "direction": { + "type": "string", + "description": "Connection directionality from the requester point of view\n" + }, + "href": { + "type": "string", + "description": "Connection URI information\n" + }, + "isRemote": { + "type": "boolean", + "description": "Connection property derived from access point locations\n" + }, + "name": { + "type": "string", + "description": "Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + }, + "notifications": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/ConnectionNotification:ConnectionNotification" + }, + "description": "Preferences for notifications on connection configuration or status changes\n" + }, + "operation": { + "$ref": "#/types/equinix:fabric/ConnectionOperation:ConnectionOperation", + "description": "Connection type-specific operational data\n" + }, + "order": { + "$ref": "#/types/equinix:fabric/ConnectionOrder:ConnectionOrder", + "description": "Order details\n" + }, + "project": { + "$ref": "#/types/equinix:fabric/ConnectionProject:ConnectionProject", + "description": "Project information\n" + }, + "redundancy": { + "$ref": "#/types/equinix:fabric/ConnectionRedundancy:ConnectionRedundancy", + "description": "Connection Redundancy Configuration\n" + }, + "state": { + "type": "string", + "description": "Connection overall state\n" + }, + "type": { + "type": "string", + "oneOf": [ + { + "type": "string" + }, + { + "type": "string", + "$ref": "#/types/equinix:fabric/connectionType:ConnectionType" + } + ], + "description": "Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC\n" + }, + "uuid": { + "type": "string", + "description": "Equinix-assigned connection identifier\n" + }, + "zSide": { + "$ref": "#/types/equinix:fabric/ConnectionZSide:ConnectionZSide", + "description": "Destination or Provider side connection configuration object of the multi-segment connection\n" + } + }, + "type": "object" } }, - "inputProperties": { - "authToken": { - "type": "string", - "description": "The Equinix Metal API auth key for API operations\n" - }, - "clientId": { - "type": "string", - "description": "API Consumer Key available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTID` shell environment variable.\n" - }, - "clientSecret": { - "type": "string", - "description": "API Consumer secret available under \"My Apps\" in developer portal. This argument can also be specified with the\n`EQUINIX_API_CLIENTSECRET` shell environment variable.\n" - }, - "endpoint": { - "type": "string", - "description": "The Equinix API base URL to point out desired environment. This argument can also be specified with the\n`EQUINIX_API_ENDPOINT` shell environment variable. (Defaults to `https://api.equinix.com`)\n" - }, - "maxRetries": { - "type": "integer", - "description": "Maximum number of retries in case of network failure.\n" - }, - "maxRetryWaitSeconds": { - "type": "integer", - "description": "Maximum number of seconds to wait before retrying a request.\n" - }, - "requestTimeout": { - "type": "integer", - "description": "The duration of time, in seconds, that the Equinix Platform API Client should wait before canceling an API request.\nCanceled requests may still result in provisioned resources. (Defaults to `30`)\n" - }, - "responseMaxPageSize": { - "type": "integer", - "description": "The maximum number of records in a single response for REST queries that produce paginated responses. (Default is client\nspecific)\n" - }, - "token": { - "type": "string", - "description": "API tokens are generated from API Consumer clients using the [OAuth2\nAPI](https://developer.equinix.com/dev-docs/fabric/getting-started/getting-access-token#request-access-and-refresh-tokens).\nThis argument can also be specified with the `EQUINIX_API_TOKEN` shell environment variable.\n" - } - } - }, - "resources": { - "equinix:fabric/cloudRouter:CloudRouter": { - "description": "Fabric V4 API compatible resource allows creation and management of [Equinix Fabric Cloud Router](https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-intro.htm#HowItWorks).\n\nAdditional documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-intro.htm#HowItWorks\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#fabric-cloud-routers\n\n{{% examples %}}\n## Example Usage\n\n{{% example %}}\n### example 1\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst newCloudRouter = new equinix.fabric.CloudRouter(\"newCloudRouter\", {\n name: \"Router-SV\",\n type: \"XF_ROUTER\",\n notifications: [{\n type: \"ALL\",\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n location: {\n metroCode: \"SV\",\n },\n \"package\": {\n code: \"STANDARD\",\n },\n project: {\n projectId: \"776847000642406\",\n },\n account: {\n accountNumber: 203612,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nnew_cloud_router = equinix.fabric.CloudRouter(\"newCloudRouter\",\n name=\"Router-SV\",\n type=\"XF_ROUTER\",\n notifications=[{\n \"type\": \"ALL\",\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n location={\n \"metro_code\": \"SV\",\n },\n package={\n \"code\": \"STANDARD\",\n },\n project={\n \"project_id\": \"776847000642406\",\n },\n account={\n \"account_number\": 203612,\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewCloudRouter(ctx, \"newCloudRouter\", \u0026fabric.CloudRouterArgs{\n\t\t\tName: pulumi.String(\"Router-SV\"),\n\t\t\tType: pulumi.String(\"XF_ROUTER\"),\n\t\t\tNotifications: fabric.CloudRouterNotificationArray{\n\t\t\t\t\u0026fabric.CloudRouterNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"ALL\"),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrder: \u0026fabric.CloudRouterOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tLocation: \u0026fabric.CloudRouterLocationArgs{\n\t\t\t\tMetroCode: pulumi.String(\"SV\"),\n\t\t\t},\n\t\t\tPackage: \u0026fabric.CloudRouterPackageArgs{\n\t\t\t\tCode: pulumi.String(\"STANDARD\"),\n\t\t\t},\n\t\t\tProject: \u0026fabric.CloudRouterProjectArgs{\n\t\t\t\tProjectId: pulumi.String(\"776847000642406\"),\n\t\t\t},\n\t\t\tAccount: \u0026fabric.CloudRouterAccountArgs{\n\t\t\t\tAccountNumber: pulumi.Int(203612),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var newCloudRouter = new Equinix.Fabric.CloudRouter(\"newCloudRouter\", new()\n {\n Name = \"Router-SV\",\n Type = \"XF_ROUTER\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.CloudRouterNotificationArgs\n {\n Type = \"ALL\",\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Order = new Equinix.Fabric.Inputs.CloudRouterOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n Location = new Equinix.Fabric.Inputs.CloudRouterLocationArgs\n {\n MetroCode = \"SV\",\n },\n Package = new Equinix.Fabric.Inputs.CloudRouterPackageArgs\n {\n Code = \"STANDARD\",\n },\n Project = new Equinix.Fabric.Inputs.CloudRouterProjectArgs\n {\n ProjectId = \"776847000642406\",\n },\n Account = new Equinix.Fabric.Inputs.CloudRouterAccountArgs\n {\n AccountNumber = 203612,\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.CloudRouter;\nimport com.pulumi.equinix.fabric.CloudRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterLocationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterPackageArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterProjectArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterAccountArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var newCloudRouter = new CloudRouter(\"newCloudRouter\", CloudRouterArgs.builder()\n .name(\"Router-SV\")\n .type(\"XF_ROUTER\")\n .notifications(CloudRouterNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .order(CloudRouterOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .location(CloudRouterLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .package_(CloudRouterPackageArgs.builder()\n .code(\"STANDARD\")\n .build())\n .project(CloudRouterProjectArgs.builder()\n .projectId(\"776847000642406\")\n .build())\n .account(CloudRouterAccountArgs.builder()\n .accountNumber(\"203612\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newCloudRouter:\n type: equinix:fabric:CloudRouter\n name: new_cloud_router\n properties:\n name: Router-SV\n type: XF_ROUTER\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n order:\n purchaseOrderNumber: 1-323292\n location:\n metroCode: SV\n package:\n code: STANDARD\n project:\n projectId: '776847000642406'\n account:\n accountNumber: '203612'\n```\n{{% /example %}}\n\n{{% example %}}\n### example 2\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst newCloudRouter = new equinix.fabric.CloudRouter(\"newCloudRouter\", {\n name: \"Router-SV\",\n type: \"XF_ROUTER\",\n notifications: [{\n type: \"ALL\",\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n location: {\n metroCode: \"SV\",\n },\n \"package\": {\n code: \"STANDARD\",\n },\n project: {\n projectId: \"776847000642406\",\n },\n marketplaceSubscription: {\n type: \"AWS_MARKETPLACE_SUBSCRIPTION\",\n uuid: \"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nnew_cloud_router = equinix.fabric.CloudRouter(\"newCloudRouter\",\n name=\"Router-SV\",\n type=\"XF_ROUTER\",\n notifications=[{\n \"type\": \"ALL\",\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n location={\n \"metro_code\": \"SV\",\n },\n package={\n \"code\": \"STANDARD\",\n },\n project={\n \"project_id\": \"776847000642406\",\n },\n marketplace_subscription={\n \"type\": \"AWS_MARKETPLACE_SUBSCRIPTION\",\n \"uuid\": \"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\",\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewCloudRouter(ctx, \"newCloudRouter\", \u0026fabric.CloudRouterArgs{\n\t\t\tName: pulumi.String(\"Router-SV\"),\n\t\t\tType: pulumi.String(\"XF_ROUTER\"),\n\t\t\tNotifications: fabric.CloudRouterNotificationArray{\n\t\t\t\t\u0026fabric.CloudRouterNotificationArgs{\n\t\t\t\t\tType: pulumi.String(\"ALL\"),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tOrder: \u0026fabric.CloudRouterOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tLocation: \u0026fabric.CloudRouterLocationArgs{\n\t\t\t\tMetroCode: pulumi.String(\"SV\"),\n\t\t\t},\n\t\t\tPackage: \u0026fabric.CloudRouterPackageArgs{\n\t\t\t\tCode: pulumi.String(\"STANDARD\"),\n\t\t\t},\n\t\t\tProject: \u0026fabric.CloudRouterProjectArgs{\n\t\t\t\tProjectId: pulumi.String(\"776847000642406\"),\n\t\t\t},\n\t\t\tMarketplaceSubscription: \u0026fabric.CloudRouterMarketplaceSubscriptionArgs{\n\t\t\t\tType: pulumi.String(\"AWS_MARKETPLACE_SUBSCRIPTION\"),\n\t\t\t\tUuid: pulumi.String(\"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var newCloudRouter = new Equinix.Fabric.CloudRouter(\"newCloudRouter\", new()\n {\n Name = \"Router-SV\",\n Type = \"XF_ROUTER\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.CloudRouterNotificationArgs\n {\n Type = \"ALL\",\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Order = new Equinix.Fabric.Inputs.CloudRouterOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n Location = new Equinix.Fabric.Inputs.CloudRouterLocationArgs\n {\n MetroCode = \"SV\",\n },\n Package = new Equinix.Fabric.Inputs.CloudRouterPackageArgs\n {\n Code = \"STANDARD\",\n },\n Project = new Equinix.Fabric.Inputs.CloudRouterProjectArgs\n {\n ProjectId = \"776847000642406\",\n },\n MarketplaceSubscription = new Equinix.Fabric.Inputs.CloudRouterMarketplaceSubscriptionArgs\n {\n Type = \"AWS_MARKETPLACE_SUBSCRIPTION\",\n Uuid = \"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\",\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.CloudRouter;\nimport com.pulumi.equinix.fabric.CloudRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterLocationArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterPackageArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterProjectArgs;\nimport com.pulumi.equinix.fabric.inputs.CloudRouterMarketplaceSubscriptionArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var newCloudRouter = new CloudRouter(\"newCloudRouter\", CloudRouterArgs.builder()\n .name(\"Router-SV\")\n .type(\"XF_ROUTER\")\n .notifications(CloudRouterNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .order(CloudRouterOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .location(CloudRouterLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .package_(CloudRouterPackageArgs.builder()\n .code(\"STANDARD\")\n .build())\n .project(CloudRouterProjectArgs.builder()\n .projectId(\"776847000642406\")\n .build())\n .marketplaceSubscription(CloudRouterMarketplaceSubscriptionArgs.builder()\n .type(\"AWS_MARKETPLACE_SUBSCRIPTION\")\n .uuid(\"2823b8ae07-a2a2-45b4-a658-c3542bb24e9\")\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newCloudRouter:\n type: equinix:fabric:CloudRouter\n name: new_cloud_router\n properties:\n name: Router-SV\n type: XF_ROUTER\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n order:\n purchaseOrderNumber: 1-323292\n location:\n metroCode: SV\n package:\n code: STANDARD\n project:\n projectId: '776847000642406'\n marketplaceSubscription:\n type: AWS_MARKETPLACE_SUBSCRIPTION\n uuid: 2823b8ae07-a2a2-45b4-a658-c3542bb24e9\n```\n{{% /example %}}\n\n{{% /examples %}}", + "equinix:fabric/connectionRouteFilter:ConnectionRouteFilter": { + "description": "Fabric V4 API compatible resource allows attachment of Route Filter Polices to Fabric Connections\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filters\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst policyAttachment = new equinix.fabric.ConnectionRouteFilter(\"policyAttachment\", {\n connectionId: \"\u003cconnection_uuid\u003e\",\n routeFilterId: \"\u003croute_filter_policy_uuid\u003e\",\n direction: \"INBOUND\",\n});\nexport const connectionRouteFilterId = policyAttachment.id;\nexport const connectionRouteFilterConnectionId = policyAttachment.connectionId;\nexport const connectionRouteFilterDirection = policyAttachment.direction;\nexport const connectionRouteFilterType = policyAttachment.type;\nexport const connectionRouteFilterAttachmentStatus = policyAttachment.attachmentStatus;\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\npolicy_attachment = equinix.fabric.ConnectionRouteFilter(\"policyAttachment\",\n connection_id=\"\u003cconnection_uuid\u003e\",\n route_filter_id=\"\u003croute_filter_policy_uuid\u003e\",\n direction=\"INBOUND\")\npulumi.export(\"connectionRouteFilterId\", policy_attachment.id)\npulumi.export(\"connectionRouteFilterConnectionId\", policy_attachment.connection_id)\npulumi.export(\"connectionRouteFilterDirection\", policy_attachment.direction)\npulumi.export(\"connectionRouteFilterType\", policy_attachment.type)\npulumi.export(\"connectionRouteFilterAttachmentStatus\", policy_attachment.attachment_status)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var policyAttachment = new Equinix.Fabric.ConnectionRouteFilter(\"policyAttachment\", new()\n {\n ConnectionId = \"\u003cconnection_uuid\u003e\",\n RouteFilterId = \"\u003croute_filter_policy_uuid\u003e\",\n Direction = \"INBOUND\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"connectionRouteFilterId\"] = policyAttachment.Id,\n [\"connectionRouteFilterConnectionId\"] = policyAttachment.ConnectionId,\n [\"connectionRouteFilterDirection\"] = policyAttachment.Direction,\n [\"connectionRouteFilterType\"] = policyAttachment.Type,\n [\"connectionRouteFilterAttachmentStatus\"] = policyAttachment.AttachmentStatus,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tpolicyAttachment, err := fabric.NewConnectionRouteFilter(ctx, \"policyAttachment\", \u0026fabric.ConnectionRouteFilterArgs{\n\t\t\tConnectionId: pulumi.String(\"\u003cconnection_uuid\u003e\"),\n\t\t\tRouteFilterId: pulumi.String(\"\u003croute_filter_policy_uuid\u003e\"),\n\t\t\tDirection: pulumi.String(\"INBOUND\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"connectionRouteFilterId\", policyAttachment.ID())\n\t\tctx.Export(\"connectionRouteFilterConnectionId\", policyAttachment.ConnectionId)\n\t\tctx.Export(\"connectionRouteFilterDirection\", policyAttachment.Direction)\n\t\tctx.Export(\"connectionRouteFilterType\", policyAttachment.Type)\n\t\tctx.Export(\"connectionRouteFilterAttachmentStatus\", policyAttachment.AttachmentStatus)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.ConnectionRouteFilter;\nimport com.pulumi.equinix.fabric.ConnectionRouteFilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var policyAttachment = new ConnectionRouteFilter(\"policyAttachment\", ConnectionRouteFilterArgs.builder()\n .connectionId(\"\u003cconnection_uuid\u003e\")\n .routeFilterId(\"\u003croute_filter_policy_uuid\u003e\")\n .direction(\"INBOUND\")\n .build());\n\n ctx.export(\"connectionRouteFilterId\", policyAttachment.id());\n ctx.export(\"connectionRouteFilterConnectionId\", policyAttachment.connectionId());\n ctx.export(\"connectionRouteFilterDirection\", policyAttachment.direction());\n ctx.export(\"connectionRouteFilterType\", policyAttachment.type());\n ctx.export(\"connectionRouteFilterAttachmentStatus\", policyAttachment.attachmentStatus());\n }\n}\n```\n```yaml\nresources:\n policyAttachment:\n type: equinix:fabric:ConnectionRouteFilter\n properties:\n connectionId: \u003cconnection_uuid\u003e\n routeFilterId: \u003croute_filter_policy_uuid\u003e\n direction: INBOUND\noutputs:\n connectionRouteFilterId: ${policyAttachment.id}\n connectionRouteFilterConnectionId: ${policyAttachment.connectionId}\n connectionRouteFilterDirection: ${policyAttachment.direction}\n connectionRouteFilterType: ${policyAttachment.type}\n connectionRouteFilterAttachmentStatus: ${policyAttachment.attachmentStatus}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { - "account": { - "$ref": "#/types/equinix:fabric/CloudRouterAccount:CloudRouterAccount", - "description": "Customer account information that is associated with this Fabric Cloud Router\n" + "attachmentStatus": { + "type": "string", + "description": "Status of the Route Filter Policy attachment lifecycle\n" }, - "bgpIpv4RoutesCount": { - "type": "integer", - "description": "Number of IPv4 BGP routes in use (including non-distinct prefixes)\n" + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n" }, - "bgpIpv6RoutesCount": { - "type": "integer", - "description": "Number of IPv6 BGP routes in use (including non-distinct prefixes)\n" + "direction": { + "type": "string", + "description": "Direction of the filtering of the attached Route Filter Policy\n" }, - "changeLogs": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/CloudRouterChangeLog:CloudRouterChangeLog" - }, - "description": "Captures Fabric Cloud Router lifecycle change information\n" + "href": { + "type": "string", + "description": "URI to the attached Route Filter Policy on the Connection\n" }, - "connectionsCount": { - "type": "integer", - "description": "Number of connections associated with this Fabric Cloud Router instance\n" + "routeFilterId": { + "type": "string", + "description": "Equinix Assigned UUID of the Route Filter Policy to attach to the Equinix Connection\n" }, - "description": { + "type": { "type": "string", - "description": "Customer-provided Fabric Cloud Router description\n" + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" }, - "distinctIpv4PrefixesCount": { - "type": "integer", - "description": "Number of distinct IPv4 routes\n" + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Policy\n" + } + }, + "required": [ + "attachmentStatus", + "connectionId", + "direction", + "href", + "routeFilterId", + "type", + "uuid" + ], + "inputProperties": { + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n", + "willReplaceOnChanges": true }, - "distinctIpv6PrefixesCount": { - "type": "integer", - "description": "Number of distinct IPv6 routes\n" + "direction": { + "type": "string", + "description": "Direction of the filtering of the attached Route Filter Policy\n" }, - "equinixAsn": { + "routeFilterId": { + "type": "string", + "description": "Equinix Assigned UUID of the Route Filter Policy to attach to the Equinix Connection\n", + "willReplaceOnChanges": true + } + }, + "requiredInputs": [ + "connectionId", + "direction", + "routeFilterId" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering ConnectionRouteFilter resources.\n", + "properties": { + "attachmentStatus": { + "type": "string", + "description": "Status of the Route Filter Policy attachment lifecycle\n" + }, + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n", + "willReplaceOnChanges": true + }, + "direction": { + "type": "string", + "description": "Direction of the filtering of the attached Route Filter Policy\n" + }, + "href": { + "type": "string", + "description": "URI to the attached Route Filter Policy on the Connection\n" + }, + "routeFilterId": { + "type": "string", + "description": "Equinix Assigned UUID of the Route Filter Policy to attach to the Equinix Connection\n", + "willReplaceOnChanges": true + }, + "type": { + "type": "string", + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Policy\n" + } + }, + "type": "object" + } + }, + "equinix:fabric/network:Network": { + "description": "Fabric V4 API compatible resource allows creation and management of Equinix Fabric Network\n\nAdditional documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/Fabric/IMPLEMENTATION/fabric-networks-implement.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#fabric-networks\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst newNetwork = new equinix.fabric.Network(\"newNetwork\", {\n notifications: [{\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n type: \"ALL\",\n }],\n project: {\n projectId: \"776847000642406\",\n },\n scope: \"GLOBAL\",\n type: \"EVPLAN\",\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nnew_network = equinix.fabric.Network(\"newNetwork\",\n notifications=[{\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n \"type\": \"ALL\",\n }],\n project={\n \"project_id\": \"776847000642406\",\n },\n scope=\"GLOBAL\",\n type=\"EVPLAN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var newNetwork = new Equinix.Fabric.Network(\"newNetwork\", new()\n {\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.NetworkNotificationArgs\n {\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n Type = \"ALL\",\n },\n },\n Project = new Equinix.Fabric.Inputs.NetworkProjectArgs\n {\n ProjectId = \"776847000642406\",\n },\n Scope = \"GLOBAL\",\n Type = \"EVPLAN\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewNetwork(ctx, \"newNetwork\", \u0026fabric.NetworkArgs{\n\t\t\tNotifications: fabric.NetworkNotificationArray{\n\t\t\t\t\u0026fabric.NetworkNotificationArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"ALL\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProject: \u0026fabric.NetworkProjectArgs{\n\t\t\t\tProjectId: pulumi.String(\"776847000642406\"),\n\t\t\t},\n\t\t\tScope: pulumi.String(\"GLOBAL\"),\n\t\t\tType: pulumi.String(\"EVPLAN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Network;\nimport com.pulumi.equinix.fabric.NetworkArgs;\nimport com.pulumi.equinix.fabric.inputs.NetworkNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.NetworkProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var newNetwork = new Network(\"newNetwork\", NetworkArgs.builder()\n .notifications(NetworkNotificationArgs.builder()\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .type(\"ALL\")\n .build())\n .project(NetworkProjectArgs.builder()\n .projectId(\"776847000642406\")\n .build())\n .scope(\"GLOBAL\")\n .type(\"EVPLAN\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newNetwork:\n type: equinix:fabric:Network\n properties:\n notifications:\n - emails:\n - example@equinix.com\n - test1@equinix.com\n type: ALL\n project:\n projectId: '776847000642406'\n scope: GLOBAL\n type: EVPLAN\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "properties": { + "change": { + "$ref": "#/types/equinix:fabric/NetworkChange:NetworkChange", + "description": "Information on asset change operation\n" + }, + "changeLog": { + "$ref": "#/types/equinix:fabric/NetworkChangeLog:NetworkChangeLog", + "description": "A permanent record of asset creation, modification, or deletion\n" + }, + "connectionsCount": { "type": "integer", - "description": "Equinix ASN\n" + "description": "Number of connections associated with this network\n" }, "href": { "type": "string", - "description": "Fabric Cloud Router URI information\n" + "description": "Fabric Network URI information\n" }, "location": { - "$ref": "#/types/equinix:fabric/CloudRouterLocation:CloudRouterLocation", - "description": "Fabric Cloud Router location\n" - }, - "marketplaceSubscription": { - "$ref": "#/types/equinix:fabric/CloudRouterMarketplaceSubscription:CloudRouterMarketplaceSubscription", - "description": "Equinix Fabric Entity for Marketplace Subscription\n" + "$ref": "#/types/equinix:fabric/NetworkLocation:NetworkLocation", + "description": "Fabric Network location\n" }, "name": { "type": "string", - "description": "Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + "description": "Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" }, "notifications": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/CloudRouterNotification:CloudRouterNotification" + "$ref": "#/types/equinix:fabric/NetworkNotification:NetworkNotification" }, - "description": "Preferences for notifications on Fabric Cloud Router configuration or status changes\n" - }, - "order": { - "$ref": "#/types/equinix:fabric/CloudRouterOrder:CloudRouterOrder", - "description": "Order information related to this Fabric Cloud Router\n" + "description": "Preferences for notifications on Fabric Network configuration or status changes\n" }, - "package": { - "$ref": "#/types/equinix:fabric/CloudRouterPackage:CloudRouterPackage", - "description": "Fabric Cloud Router Package Type\n" + "operation": { + "$ref": "#/types/equinix:fabric/NetworkOperation:NetworkOperation", + "description": "Network operation information that is associated with this Fabric Network\n" }, "project": { - "$ref": "#/types/equinix:fabric/CloudRouterProject:CloudRouterProject", - "description": "Customer resource hierarchy project information. Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects\n" + "$ref": "#/types/equinix:fabric/NetworkProject:NetworkProject", + "description": "Fabric Network project\n" + }, + "scope": { + "type": "string", + "description": "Fabric Network scope\n" }, "state": { "type": "string", - "description": "Fabric Cloud Router overall state\n" + "description": "Fabric Network overall state\n" }, "type": { "type": "string", - "description": "Defines the FCR type like; XF_ROUTER\n" + "description": "Supported Network types - EVPLAN, EPLAN, IPWAN\n" }, "uuid": { "type": "string", - "description": "Equinix-assigned Fabric Cloud Router identifier\n" + "description": "Equinix-assigned network identifier\n" } }, "required": [ - "account", - "bgpIpv4RoutesCount", - "bgpIpv6RoutesCount", - "changeLogs", + "change", + "changeLog", "connectionsCount", - "distinctIpv4PrefixesCount", - "distinctIpv6PrefixesCount", - "equinixAsn", "href", "location", - "marketplaceSubscription", "name", "notifications", - "order", - "package", + "operation", "project", + "scope", "state", "type", "uuid" ], "inputProperties": { - "account": { - "$ref": "#/types/equinix:fabric/CloudRouterAccount:CloudRouterAccount", - "description": "Customer account information that is associated with this Fabric Cloud Router\n" - }, - "description": { - "type": "string", - "description": "Customer-provided Fabric Cloud Router description\n" - }, - "href": { - "type": "string", - "description": "Fabric Cloud Router URI information\n" - }, "location": { - "$ref": "#/types/equinix:fabric/CloudRouterLocation:CloudRouterLocation", - "description": "Fabric Cloud Router location\n" - }, - "marketplaceSubscription": { - "$ref": "#/types/equinix:fabric/CloudRouterMarketplaceSubscription:CloudRouterMarketplaceSubscription", - "description": "Equinix Fabric Entity for Marketplace Subscription\n" + "$ref": "#/types/equinix:fabric/NetworkLocation:NetworkLocation", + "description": "Fabric Network location\n" }, "name": { "type": "string", - "description": "Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + "description": "Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" }, "notifications": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/CloudRouterNotification:CloudRouterNotification" + "$ref": "#/types/equinix:fabric/NetworkNotification:NetworkNotification" }, - "description": "Preferences for notifications on Fabric Cloud Router configuration or status changes\n" - }, - "order": { - "$ref": "#/types/equinix:fabric/CloudRouterOrder:CloudRouterOrder", - "description": "Order information related to this Fabric Cloud Router\n" - }, - "package": { - "$ref": "#/types/equinix:fabric/CloudRouterPackage:CloudRouterPackage", - "description": "Fabric Cloud Router Package Type\n" + "description": "Preferences for notifications on Fabric Network configuration or status changes\n" }, "project": { - "$ref": "#/types/equinix:fabric/CloudRouterProject:CloudRouterProject", - "description": "Customer resource hierarchy project information. Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects\n" + "$ref": "#/types/equinix:fabric/NetworkProject:NetworkProject", + "description": "Fabric Network project\n" }, - "type": { + "scope": { "type": "string", - "description": "Defines the FCR type like; XF_ROUTER\n" + "description": "Fabric Network scope\n" }, - "uuid": { + "type": { "type": "string", - "description": "Equinix-assigned Fabric Cloud Router identifier\n" + "description": "Supported Network types - EVPLAN, EPLAN, IPWAN\n" } }, "requiredInputs": [ - "location", "notifications", - "package", "project", + "scope", "type" ], "stateInputs": { - "description": "Input properties used for looking up and filtering CloudRouter resources.\n", + "description": "Input properties used for looking up and filtering Network resources.\n", "properties": { - "account": { - "$ref": "#/types/equinix:fabric/CloudRouterAccount:CloudRouterAccount", - "description": "Customer account information that is associated with this Fabric Cloud Router\n" - }, - "bgpIpv4RoutesCount": { - "type": "integer", - "description": "Number of IPv4 BGP routes in use (including non-distinct prefixes)\n" - }, - "bgpIpv6RoutesCount": { - "type": "integer", - "description": "Number of IPv6 BGP routes in use (including non-distinct prefixes)\n" + "change": { + "$ref": "#/types/equinix:fabric/NetworkChange:NetworkChange", + "description": "Information on asset change operation\n" }, - "changeLogs": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/CloudRouterChangeLog:CloudRouterChangeLog" - }, - "description": "Captures Fabric Cloud Router lifecycle change information\n" + "changeLog": { + "$ref": "#/types/equinix:fabric/NetworkChangeLog:NetworkChangeLog", + "description": "A permanent record of asset creation, modification, or deletion\n" }, "connectionsCount": { "type": "integer", - "description": "Number of connections associated with this Fabric Cloud Router instance\n" - }, - "description": { - "type": "string", - "description": "Customer-provided Fabric Cloud Router description\n" - }, - "distinctIpv4PrefixesCount": { - "type": "integer", - "description": "Number of distinct IPv4 routes\n" - }, - "distinctIpv6PrefixesCount": { - "type": "integer", - "description": "Number of distinct IPv6 routes\n" - }, - "equinixAsn": { - "type": "integer", - "description": "Equinix ASN\n" + "description": "Number of connections associated with this network\n" }, "href": { "type": "string", - "description": "Fabric Cloud Router URI information\n" + "description": "Fabric Network URI information\n" }, "location": { - "$ref": "#/types/equinix:fabric/CloudRouterLocation:CloudRouterLocation", - "description": "Fabric Cloud Router location\n" - }, - "marketplaceSubscription": { - "$ref": "#/types/equinix:fabric/CloudRouterMarketplaceSubscription:CloudRouterMarketplaceSubscription", - "description": "Equinix Fabric Entity for Marketplace Subscription\n" + "$ref": "#/types/equinix:fabric/NetworkLocation:NetworkLocation", + "description": "Fabric Network location\n" }, "name": { "type": "string", - "description": "Fabric Cloud Router name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" + "description": "Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" }, "notifications": { "type": "array", "items": { - "$ref": "#/types/equinix:fabric/CloudRouterNotification:CloudRouterNotification" + "$ref": "#/types/equinix:fabric/NetworkNotification:NetworkNotification" }, - "description": "Preferences for notifications on Fabric Cloud Router configuration or status changes\n" - }, - "order": { - "$ref": "#/types/equinix:fabric/CloudRouterOrder:CloudRouterOrder", - "description": "Order information related to this Fabric Cloud Router\n" + "description": "Preferences for notifications on Fabric Network configuration or status changes\n" }, - "package": { - "$ref": "#/types/equinix:fabric/CloudRouterPackage:CloudRouterPackage", - "description": "Fabric Cloud Router Package Type\n" + "operation": { + "$ref": "#/types/equinix:fabric/NetworkOperation:NetworkOperation", + "description": "Network operation information that is associated with this Fabric Network\n" }, "project": { - "$ref": "#/types/equinix:fabric/CloudRouterProject:CloudRouterProject", - "description": "Customer resource hierarchy project information. Applicable to customers onboarded to Equinix Identity and Access Management. For more information see Identity and Access Management: Projects\n" + "$ref": "#/types/equinix:fabric/NetworkProject:NetworkProject", + "description": "Fabric Network project\n" + }, + "scope": { + "type": "string", + "description": "Fabric Network scope\n" }, "state": { "type": "string", - "description": "Fabric Cloud Router overall state\n" + "description": "Fabric Network overall state\n" }, "type": { "type": "string", - "description": "Defines the FCR type like; XF_ROUTER\n" + "description": "Supported Network types - EVPLAN, EPLAN, IPWAN\n" }, "uuid": { "type": "string", - "description": "Equinix-assigned Fabric Cloud Router identifier\n" + "description": "Equinix-assigned network identifier\n" } }, "type": "object" } }, - "equinix:fabric/connection:Connection": { - "description": "\n\n{{% examples %}}\n## Example Usage\n\n{{% example %}}\n### example fcr to azure\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Azure = new equinix.fabric.Connection(\"fcr2azure\", {\n name: \"ConnectionName\",\n type: \"IP_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_azure = equinix.fabric.Connection(\"fcr2azure\",\n name=\"ConnectionName\",\n type=\"IP_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2azure\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IP_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Azure = new Equinix.Fabric.Connection(\"fcr2azure\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IP_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Azure = new Connection(\"fcr2Azure\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IP_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2azure:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IP_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example fcr to metal\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Metal = new equinix.fabric.Connection(\"fcr2metal\", {\n name: \"ConnectionName\",\n type: \"IP_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: \"METAL_NETWORK\",\n authenticationKey: \"\u003cmetal_authorization_code\u003e\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_metal = equinix.fabric.Connection(\"fcr2metal\",\n name=\"ConnectionName\",\n type=\"IP_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": \"METAL_NETWORK\",\n \"authentication_key\": \"\u003cmetal_authorization_code\u003e\",\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2metal\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IP_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"METAL_NETWORK\"),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cmetal_authorization_code\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Metal = new Equinix.Fabric.Connection(\"fcr2metal\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IP_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = \"METAL_NETWORK\",\n AuthenticationKey = \"\u003cmetal_authorization_code\u003e\",\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Metal = new Connection(\"fcr2Metal\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IP_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"METAL_NETWORK\")\n .authenticationKey(\"\u003cmetal_authorization_code\u003e\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2metal:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IP_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: METAL_NETWORK\n authenticationKey: \u003cmetal_authorization_code\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example fcr to network\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Network = new equinix.fabric.Connection(\"fcr2network\", {\n name: \"ConnectionName\",\n type: \"IPWAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_network = equinix.fabric.Connection(\"fcr2network\",\n name=\"ConnectionName\",\n type=\"IPWAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2network\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IPWAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Network = new Equinix.Fabric.Connection(\"fcr2network\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IPWAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Network = new Connection(\"fcr2Network\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IPWAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2network:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IPWAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example fcr to port\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst fcr2Port = new equinix.fabric.Connection(\"fcr2port\", {\n name: \"ConnectionName\",\n type: \"IP_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"CLOUD_ROUTER\",\n router: {\n uuid: \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003cport_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,\n vlanTag: 2711,\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nfcr2_port = equinix.fabric.Connection(\"fcr2port\",\n name=\"ConnectionName\",\n type=\"IP_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"CLOUD_ROUTER\",\n \"router\": {\n \"uuid\": \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003cport_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,\n \"vlan_tag\": 2711,\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"fcr2port\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"IP_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"CLOUD_ROUTER\"),\n\t\t\t\t\tRouter: \u0026fabric.ConnectionASideAccessPointRouterArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003ccloud_router_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cport_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionZSideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),\n\t\t\t\t\t\tVlanTag: pulumi.Int(2711),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var fcr2Port = new Equinix.Fabric.Connection(\"fcr2port\", new()\n {\n Name = \"ConnectionName\",\n Type = \"IP_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"CLOUD_ROUTER\",\n Router = new Equinix.Fabric.Inputs.ConnectionASideAccessPointRouterArgs\n {\n Uuid = \"\u003ccloud_router_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003cport_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,\n VlanTag = 2711,\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointRouterArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var fcr2Port = new Connection(\"fcr2Port\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"IP_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"CLOUD_ROUTER\")\n .router(ConnectionASideAccessPointRouterArgs.builder()\n .uuid(\"\u003ccloud_router_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003cport_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()\n .type(\"DOT1Q\")\n .vlanTag(\"2711\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n fcr2port:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: IP_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: CLOUD_ROUTER\n router:\n uuid: \u003ccloud_router_uuid\u003e\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003cport_uuid\u003e\n linkProtocol:\n type: DOT1Q\n vlanTag: '2711'\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example metal to aws\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst metal2Aws = new equinix.fabric.Connection(\"metal2aws\", {\n name: \"ConnectionName\",\n type: \"EVPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: \"METAL_NETWORK\",\n authenticationKey: \"\u003cmetal_authorization_code\u003e\",\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003caws_account_id\u003e\",\n sellerRegion: \"us-west-1\",\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cservice_profile_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nmetal2_aws = equinix.fabric.Connection(\"metal2aws\",\n name=\"ConnectionName\",\n type=\"EVPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": \"METAL_NETWORK\",\n \"authentication_key\": \"\u003cmetal_authorization_code\u003e\",\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003caws_account_id\u003e\",\n \"seller_region\": \"us-west-1\",\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cservice_profile_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"metal2aws\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EVPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(\"METAL_NETWORK\"),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cmetal_authorization_code\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003caws_account_id\u003e\"),\n\t\t\t\t\tSellerRegion: pulumi.String(\"us-west-1\"),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_profile_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var metal2Aws = new Equinix.Fabric.Connection(\"metal2aws\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EVPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = \"METAL_NETWORK\",\n AuthenticationKey = \"\u003cmetal_authorization_code\u003e\",\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003caws_account_id\u003e\",\n SellerRegion = \"us-west-1\",\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cservice_profile_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var metal2Aws = new Connection(\"metal2Aws\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"METAL_NETWORK\")\n .authenticationKey(\"\u003cmetal_authorization_code\u003e\")\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003caws_account_id\u003e\")\n .sellerRegion(\"us-west-1\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cservice_profile_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n metal2aws:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: METAL_NETWORK\n authenticationKey: \u003cmetal_authorization_code\u003e\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003caws_account_id\u003e\n sellerRegion: us-west-1\n profile:\n type: L2_PROFILE\n uuid: \u003cservice_profile_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to aws\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst port2Aws = new equinix.fabric.Connection(\"port2aws\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n redundancy: {\n priority: \"PRIMARY\",\n },\n order: {\n purchaseOrderNumber: \"1-323929\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 2019,\n vlanCTag: 2112,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003caws_account_id\u003e\",\n sellerRegion: \"us-west-1\",\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cservice_profile_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n additionalInfo: [\n {\n key: \"accessKey\",\n value: \"\u003caws_access_key\u003e\",\n },\n {\n key: \"secretKey\",\n value: \"\u003caws_secret_key\u003e\",\n },\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nport2_aws = equinix.fabric.Connection(\"port2aws\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n redundancy={\n \"priority\": \"PRIMARY\",\n },\n order={\n \"purchase_order_number\": \"1-323929\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 2019,\n \"vlan_c_tag\": 2112,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003caws_account_id\u003e\",\n \"seller_region\": \"us-west-1\",\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cservice_profile_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n },\n additional_info=[\n {\n \"key\": \"accessKey\",\n \"value\": \"\u003caws_access_key\u003e\",\n },\n {\n \"key\": \"secretKey\",\n \"value\": \"\u003caws_secret_key\u003e\",\n },\n ])\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"port2aws\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tRedundancy: \u0026fabric.ConnectionRedundancyArgs{\n\t\t\t\tPriority: pulumi.String(\"PRIMARY\"),\n\t\t\t},\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323929\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(2019),\n\t\t\t\t\t\tVlanCTag: pulumi.Int(2112),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003caws_account_id\u003e\"),\n\t\t\t\t\tSellerRegion: pulumi.String(\"us-west-1\"),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_profile_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdditionalInfo: pulumi.StringMapArray{\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"key\": pulumi.String(\"accessKey\"),\n\t\t\t\t\t\"value\": pulumi.String(\"\u003caws_access_key\u003e\"),\n\t\t\t\t},\n\t\t\t\tpulumi.StringMap{\n\t\t\t\t\t\"key\": pulumi.String(\"secretKey\"),\n\t\t\t\t\t\"value\": pulumi.String(\"\u003caws_secret_key\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port2Aws = new Equinix.Fabric.Connection(\"port2aws\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Redundancy = new Equinix.Fabric.Inputs.ConnectionRedundancyArgs\n {\n Priority = \"PRIMARY\",\n },\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323929\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 2019,\n VlanCTag = 2112,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003caws_account_id\u003e\",\n SellerRegion = \"us-west-1\",\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cservice_profile_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n AdditionalInfo = new[]\n {\n \n {\n { \"key\", \"accessKey\" },\n { \"value\", \"\u003caws_access_key\u003e\" },\n },\n \n {\n { \"key\", \"secretKey\" },\n { \"value\", \"\u003caws_secret_key\u003e\" },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionRedundancyArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var port2Aws = new Connection(\"port2Aws\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .redundancy(ConnectionRedundancyArgs.builder()\n .priority(\"PRIMARY\")\n .build())\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323929\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"2019\")\n .vlanCTag(\"2112\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003caws_account_id\u003e\")\n .sellerRegion(\"us-west-1\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cservice_profile_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .additionalInfo( \n Map.ofEntries(\n Map.entry(\"key\", \"accessKey\"),\n Map.entry(\"value\", \"\u003caws_access_key\u003e\")\n ),\n Map.ofEntries(\n Map.entry(\"key\", \"secretKey\"),\n Map.entry(\"value\", \"\u003caws_secret_key\u003e\")\n ))\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port2aws:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n redundancy:\n priority: PRIMARY\n order:\n purchaseOrderNumber: 1-323929\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '2019'\n vlanCTag: '2112'\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003caws_account_id\u003e\n sellerRegion: us-west-1\n profile:\n type: L2_PROFILE\n uuid: \u003cservice_profile_uuid\u003e\n location:\n metroCode: SV\n additionalInfo:\n - key: accessKey\n value: \u003caws_access_key\u003e\n - key: secretKey\n value: \u003caws_secret_key\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to network eplan\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst eplan = new equinix.fabric.Connection(\"eplan\", {\n name: \"ConnectionName\",\n type: \"EPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\neplan = equinix.fabric.Connection(\"eplan\",\n name=\"ConnectionName\",\n type=\"EPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"eplan\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var eplan = new Equinix.Fabric.Connection(\"eplan\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var eplan = new Connection(\"eplan\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n eplan:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to network evplan\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst evplan = new equinix.fabric.Connection(\"evplan\", {\n name: \"ConnectionName\",\n type: \"EVPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,\n vlanSTag: 1976,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nevplan = equinix.fabric.Connection(\"evplan\",\n name=\"ConnectionName\",\n type=\"EVPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,\n \"vlan_s_tag\": 1976,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"evplan\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EVPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(1976),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var evplan = new Equinix.Fabric.Connection(\"evplan\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EVPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,\n VlanSTag = 1976,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var evplan = new Connection(\"evplan\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"DOT1Q\")\n .vlanSTag(\"1976\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n evplan:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: DOT1Q\n vlanSTag: '1976'\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to port\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst port2Port = new equinix.fabric.Connection(\"port2port\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 1976,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 3711,\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nport2_port = equinix.fabric.Connection(\"port2port\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 1976,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 3711,\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"port2port\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(1976),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionZSideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(3711),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var port2Port = new Equinix.Fabric.Connection(\"port2port\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 1976,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 3711,\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var port2Port = new Connection(\"port2Port\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"1976\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"3711\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n port2port:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '1976'\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '3711'\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to port access epl\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst accessEplVc = new equinix.fabric.Connection(\"accessEplVc\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.AccessEPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.QinQ,\n vlanSTag: 1976,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\naccess_epl_vc = equinix.fabric.Connection(\"accessEplVc\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.ACCESS_EPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.QIN_Q,\n \"vlan_s_tag\": 1976,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"accessEplVc\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeAccessEPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionASideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeQinQ),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(1976),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var accessEplVc = new Equinix.Fabric.Connection(\"accessEplVc\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.AccessEPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionASideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.QinQ,\n VlanSTag = 1976,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var accessEplVc = new Connection(\"accessEplVc\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"ACCESS_EPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionASideAccessPointLinkProtocolArgs.builder()\n .type(\"QINQ\")\n .vlanSTag(\"1976\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n accessEplVc:\n type: equinix:fabric:Connection\n name: access_epl_vc\n properties:\n name: ConnectionName\n type: ACCESS_EPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n linkProtocol:\n type: QINQ\n vlanSTag: '1976'\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to port epl\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst epl = new equinix.fabric.Connection(\"epl\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nepl = equinix.fabric.Connection(\"epl\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"epl\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionASideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003caside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var epl = new Equinix.Fabric.Connection(\"epl\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionASideAccessPointPortArgs\n {\n Uuid = \"\u003caside_port_uuid\u003e\",\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var epl = new Connection(\"epl\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionASideAccessPointPortArgs.builder()\n .uuid(\"\u003caside_port_uuid\u003e\")\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n epl:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003caside_port_uuid\u003e\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example port to vd\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Port = new equinix.fabric.Connection(\"vd2port\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"NETWORK\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Colo,\n port: {\n uuid: \"\u003czside_port_uuid\u003e\",\n },\n linkProtocol: {\n type: equinix.fabric.AccessPointLinkProtocolType.Dot1q,\n vlanSTag: 3711,\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_port = equinix.fabric.Connection(\"vd2port\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"NETWORK\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.COLO,\n \"port\": {\n \"uuid\": \"\u003czside_port_uuid\u003e\",\n },\n \"link_protocol\": {\n \"type\": equinix.fabric.AccessPointLinkProtocolType.DOT1Q,\n \"vlan_s_tag\": 3711,\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2port\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NETWORK\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeColo),\n\t\t\t\t\tPort: \u0026fabric.ConnectionZSideAccessPointPortArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003czside_port_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLinkProtocol: \u0026fabric.ConnectionZSideAccessPointLinkProtocolArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.AccessPointLinkProtocolTypeDot1q),\n\t\t\t\t\t\tVlanSTag: pulumi.Int(3711),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Port = new Equinix.Fabric.Connection(\"vd2port\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"NETWORK\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Colo,\n Port = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointPortArgs\n {\n Uuid = \"\u003czside_port_uuid\u003e\",\n },\n LinkProtocol = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLinkProtocolArgs\n {\n Type = Equinix.Fabric.AccessPointLinkProtocolType.Dot1q,\n VlanSTag = 3711,\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointPortArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLinkProtocolArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Port = new Connection(\"vd2Port\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"NETWORK\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"COLO\")\n .port(ConnectionZSideAccessPointPortArgs.builder()\n .uuid(\"\u003czside_port_uuid\u003e\")\n .build())\n .linkProtocol(ConnectionZSideAccessPointLinkProtocolArgs.builder()\n .type(\"DOT1Q\")\n .vlanSTag(\"3711\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2port:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: NETWORK\n id: 7\n zSide:\n accessPoint:\n type: COLO\n port:\n uuid: \u003czside_port_uuid\u003e\n linkProtocol:\n type: DOT1Q\n vlanSTag: '3711'\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example token to aws\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst token2Aws = new equinix.fabric.Connection(\"token2aws\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n serviceToken: {\n uuid: \"\u003cservice_token_uuid\u003e\",\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003caws_account_id\u003e\",\n sellerRegion: \"us-west-1\",\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cservice_profile_uuid\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\ntoken2_aws = equinix.fabric.Connection(\"token2aws\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"service_token\": {\n \"uuid\": \"\u003cservice_token_uuid\u003e\",\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003caws_account_id\u003e\",\n \"seller_region\": \"us-west-1\",\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cservice_profile_uuid\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"token2aws\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tServiceToken: \u0026fabric.ConnectionASideServiceTokenArgs{\n\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_token_uuid\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003caws_account_id\u003e\"),\n\t\t\t\t\tSellerRegion: pulumi.String(\"us-west-1\"),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_profile_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var token2Aws = new Equinix.Fabric.Connection(\"token2aws\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n ServiceToken = new Equinix.Fabric.Inputs.ConnectionASideServiceTokenArgs\n {\n Uuid = \"\u003cservice_token_uuid\u003e\",\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003caws_account_id\u003e\",\n SellerRegion = \"us-west-1\",\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cservice_profile_uuid\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideServiceTokenArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var token2Aws = new Connection(\"token2Aws\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .serviceToken(ConnectionASideServiceTokenArgs.builder()\n .uuid(\"\u003cservice_token_uuid\u003e\")\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003caws_account_id\u003e\")\n .sellerRegion(\"us-west-1\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cservice_profile_uuid\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n token2aws:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n serviceToken:\n uuid: \u003cservice_token_uuid\u003e\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003caws_account_id\u003e\n sellerRegion: us-west-1\n profile:\n type: L2_PROFILE\n uuid: \u003cservice_profile_uuid\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to azure\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Azure = new equinix.fabric.Connection(\"vd2azure\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_azure = equinix.fabric.Connection(\"vd2azure\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2azure\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Azure = new Equinix.Fabric.Connection(\"vd2azure\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Azure = new Connection(\"vd2Azure\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2azure:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 7\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to azure redundant\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2AzurePrimary = new equinix.fabric.Connection(\"vd2azurePrimary\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n redundancy: {\n priority: \"PRIMARY\",\n },\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\nconst vd2AzureSecondary = new equinix.fabric.Connection(\"vd2azureSecondary\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n redundancy: {\n priority: \"SECONDARY\",\n group: vd2AzurePrimary.redundancy.apply(redundancy =\u003e redundancy?.group),\n },\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 5,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.SP,\n authenticationKey: \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n peeringType: equinix.fabric.AccessPointPeeringType.Private,\n profile: {\n type: equinix.fabric.ProfileType.L2Profile,\n uuid: \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n location: {\n metroCode: equinix.index.Metro.SiliconValley,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_azure_primary = equinix.fabric.Connection(\"vd2azurePrimary\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n redundancy={\n \"priority\": \"PRIMARY\",\n },\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\nvd2_azure_secondary = equinix.fabric.Connection(\"vd2azureSecondary\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n redundancy={\n \"priority\": \"SECONDARY\",\n \"group\": vd2_azure_primary.redundancy.group,\n },\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 5,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.SP,\n \"authentication_key\": \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n \"peering_type\": equinix.fabric.AccessPointPeeringType.PRIVATE,\n \"profile\": {\n \"type\": equinix.fabric.ProfileType.L2_PROFILE,\n \"uuid\": \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n \"location\": {\n \"metro_code\": equinix.Metro.SILICON_VALLEY,\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix\"\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tvd2AzurePrimary, err := fabric.NewConnection(ctx, \"vd2azurePrimary\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tRedundancy: \u0026fabric.ConnectionRedundancyArgs{\n\t\t\t\tPriority: pulumi.String(\"PRIMARY\"),\n\t\t\t},\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = fabric.NewConnection(ctx, \"vd2azureSecondary\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tRedundancy: \u0026fabric.ConnectionRedundancyArgs{\n\t\t\t\tPriority: pulumi.String(\"SECONDARY\"),\n\t\t\t\tGroup: vd2AzurePrimary.Redundancy.ApplyT(func(redundancy fabric.ConnectionRedundancy) (*string, error) {\n\t\t\t\t\treturn \u0026redundancy.Group, nil\n\t\t\t\t}).(pulumi.StringPtrOutput),\n\t\t\t},\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(5),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeSP),\n\t\t\t\t\tAuthenticationKey: pulumi.String(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\"),\n\t\t\t\t\tPeeringType: pulumi.String(fabric.AccessPointPeeringTypePrivate),\n\t\t\t\t\tProfile: \u0026fabric.ConnectionZSideAccessPointProfileArgs{\n\t\t\t\t\t\tType: pulumi.String(fabric.ProfileTypeL2Profile),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cAzure_Service_Profile_UUID\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tLocation: \u0026fabric.ConnectionZSideAccessPointLocationArgs{\n\t\t\t\t\t\tMetroCode: pulumi.String(equinix.MetroSiliconValley),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2AzurePrimary = new Equinix.Fabric.Connection(\"vd2azurePrimary\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Redundancy = new Equinix.Fabric.Inputs.ConnectionRedundancyArgs\n {\n Priority = \"PRIMARY\",\n },\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n var vd2AzureSecondary = new Equinix.Fabric.Connection(\"vd2azureSecondary\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Redundancy = new Equinix.Fabric.Inputs.ConnectionRedundancyArgs\n {\n Priority = \"SECONDARY\",\n Group = vd2AzurePrimary.Redundancy.Apply(redundancy =\u003e redundancy?.Group),\n },\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 5,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.SP,\n AuthenticationKey = \"\u003cAzure_ExpressRouter_Auth_Key\u003e\",\n PeeringType = Equinix.Fabric.AccessPointPeeringType.Private,\n Profile = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointProfileArgs\n {\n Type = Equinix.Fabric.ProfileType.L2Profile,\n Uuid = \"\u003cAzure_Service_Profile_UUID\u003e\",\n },\n Location = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointLocationArgs\n {\n MetroCode = Equinix.Metro.SiliconValley,\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionRedundancyArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointProfileArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointLocationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2AzurePrimary = new Connection(\"vd2AzurePrimary\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .redundancy(ConnectionRedundancyArgs.builder()\n .priority(\"PRIMARY\")\n .build())\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n var vd2AzureSecondary = new Connection(\"vd2AzureSecondary\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .redundancy(ConnectionRedundancyArgs.builder()\n .priority(\"SECONDARY\")\n .group(vd2AzurePrimary.redundancy().applyValue(redundancy -\u003e redundancy.group()))\n .build())\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(5)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"SP\")\n .authenticationKey(\"\u003cAzure_ExpressRouter_Auth_Key\u003e\")\n .peeringType(\"PRIVATE\")\n .profile(ConnectionZSideAccessPointProfileArgs.builder()\n .type(\"L2_PROFILE\")\n .uuid(\"\u003cAzure_Service_Profile_UUID\u003e\")\n .build())\n .location(ConnectionZSideAccessPointLocationArgs.builder()\n .metroCode(\"SV\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2azurePrimary:\n type: equinix:fabric:Connection\n name: vd2azure_primary\n properties:\n name: ConnectionName\n type: EVPL_VC\n redundancy:\n priority: PRIMARY\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 7\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n vd2azureSecondary:\n type: equinix:fabric:Connection\n name: vd2azure_secondary\n properties:\n name: ConnectionName\n type: EVPL_VC\n redundancy:\n priority: SECONDARY\n group: ${vd2azurePrimary.redundancy.group}\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 5\n zSide:\n accessPoint:\n type: SP\n authenticationKey: \u003cAzure_ExpressRouter_Auth_Key\u003e\n peeringType: PRIVATE\n profile:\n type: L2_PROFILE\n uuid: \u003cAzure_Service_Profile_UUID\u003e\n location:\n metroCode: SV\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to network\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Network = new equinix.fabric.Connection(\"vd2network\", {\n name: \"ConnectionName\",\n type: \"EVPLAN_VC\",\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"CLOUD\",\n id: 7,\n },\n },\n },\n zSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.Network,\n network: {\n uuid: \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_network = equinix.fabric.Connection(\"vd2network\",\n name=\"ConnectionName\",\n type=\"EVPLAN_VC\",\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"CLOUD\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.NETWORK,\n \"network\": {\n \"uuid\": \"\u003cnetwork_uuid\u003e\",\n },\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2network\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(\"EVPLAN_VC\"),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"CLOUD\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionZSideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeNetwork),\n\t\t\t\t\tNetwork: \u0026fabric.ConnectionZSideAccessPointNetworkArgs{\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cnetwork_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Network = new Equinix.Fabric.Connection(\"vd2network\", new()\n {\n Name = \"ConnectionName\",\n Type = \"EVPLAN_VC\",\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"CLOUD\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.Network,\n Network = new Equinix.Fabric.Inputs.ConnectionZSideAccessPointNetworkArgs\n {\n Uuid = \"\u003cnetwork_uuid\u003e\",\n },\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideAccessPointNetworkArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Network = new Connection(\"vd2Network\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPLAN_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"CLOUD\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .accessPoint(ConnectionZSideAccessPointArgs.builder()\n .type(\"NETWORK\")\n .network(ConnectionZSideAccessPointNetworkArgs.builder()\n .uuid(\"\u003cnetwork_uuid\u003e\")\n .build())\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2network:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPLAN_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: CLOUD\n id: 7\n zSide:\n accessPoint:\n type: NETWORK\n network:\n uuid: \u003cnetwork_uuid\u003e\n```\n{{% /example %}}\n\n{{% example %}}\n### example vd to token\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst vd2Token = new equinix.fabric.Connection(\"vd2token\", {\n name: \"ConnectionName\",\n type: equinix.fabric.ConnectionType.EVPL,\n notifications: [{\n type: equinix.fabric.NotificationsType.All,\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth: 50,\n order: {\n purchaseOrderNumber: \"1-323292\",\n },\n aSide: {\n accessPoint: {\n type: equinix.fabric.AccessPointType.VD,\n virtualDevice: {\n type: \"EDGE\",\n uuid: \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n type: \"NETWORK\",\n id: 7,\n },\n },\n },\n zSide: {\n serviceToken: {\n uuid: \"\u003cservice_token_uuid\u003e\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nvd2_token = equinix.fabric.Connection(\"vd2token\",\n name=\"ConnectionName\",\n type=equinix.fabric.ConnectionType.EVPL,\n notifications=[{\n \"type\": equinix.fabric.NotificationsType.ALL,\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n }],\n bandwidth=50,\n order={\n \"purchase_order_number\": \"1-323292\",\n },\n a_side={\n \"access_point\": {\n \"type\": equinix.fabric.AccessPointType.VD,\n \"virtual_device\": {\n \"type\": \"EDGE\",\n \"uuid\": \"\u003cdevice_uuid\u003e\",\n },\n \"interface\": {\n \"type\": \"NETWORK\",\n \"id\": 7,\n },\n },\n },\n z_side={\n \"service_token\": {\n \"uuid\": \"\u003cservice_token_uuid\u003e\",\n },\n })\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewConnection(ctx, \"vd2token\", \u0026fabric.ConnectionArgs{\n\t\t\tName: pulumi.String(\"ConnectionName\"),\n\t\t\tType: pulumi.String(fabric.ConnectionTypeEVPL),\n\t\t\tNotifications: fabric.ConnectionNotificationArray{\n\t\t\t\t\u0026fabric.ConnectionNotificationArgs{\n\t\t\t\t\tType: pulumi.String(fabric.NotificationsTypeAll),\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tBandwidth: pulumi.Int(50),\n\t\t\tOrder: \u0026fabric.ConnectionOrderArgs{\n\t\t\t\tPurchaseOrderNumber: pulumi.String(\"1-323292\"),\n\t\t\t},\n\t\t\tASide: \u0026fabric.ConnectionASideArgs{\n\t\t\t\tAccessPoint: \u0026fabric.ConnectionASideAccessPointArgs{\n\t\t\t\t\tType: pulumi.String(fabric.AccessPointTypeVD),\n\t\t\t\t\tVirtualDevice: \u0026fabric.ConnectionASideAccessPointVirtualDeviceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"EDGE\"),\n\t\t\t\t\t\tUuid: pulumi.String(\"\u003cdevice_uuid\u003e\"),\n\t\t\t\t\t},\n\t\t\t\t\tInterface: \u0026fabric.ConnectionASideAccessPointInterfaceArgs{\n\t\t\t\t\t\tType: pulumi.String(\"NETWORK\"),\n\t\t\t\t\t\tId: pulumi.Int(7),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tZSide: \u0026fabric.ConnectionZSideArgs{\n\t\t\t\tServiceToken: \u0026fabric.ConnectionZSideServiceTokenArgs{\n\t\t\t\t\tUuid: pulumi.String(\"\u003cservice_token_uuid\u003e\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var vd2Token = new Equinix.Fabric.Connection(\"vd2token\", new()\n {\n Name = \"ConnectionName\",\n Type = Equinix.Fabric.ConnectionType.EVPL,\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.ConnectionNotificationArgs\n {\n Type = Equinix.Fabric.NotificationsType.All,\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n },\n },\n Bandwidth = 50,\n Order = new Equinix.Fabric.Inputs.ConnectionOrderArgs\n {\n PurchaseOrderNumber = \"1-323292\",\n },\n ASide = new Equinix.Fabric.Inputs.ConnectionASideArgs\n {\n AccessPoint = new Equinix.Fabric.Inputs.ConnectionASideAccessPointArgs\n {\n Type = Equinix.Fabric.AccessPointType.VD,\n VirtualDevice = new Equinix.Fabric.Inputs.ConnectionASideAccessPointVirtualDeviceArgs\n {\n Type = \"EDGE\",\n Uuid = \"\u003cdevice_uuid\u003e\",\n },\n Interface = new Equinix.Fabric.Inputs.ConnectionASideAccessPointInterfaceArgs\n {\n Type = \"NETWORK\",\n Id = 7,\n },\n },\n },\n ZSide = new Equinix.Fabric.Inputs.ConnectionZSideArgs\n {\n ServiceToken = new Equinix.Fabric.Inputs.ConnectionZSideServiceTokenArgs\n {\n Uuid = \"\u003cservice_token_uuid\u003e\",\n },\n },\n });\n\n});\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Connection;\nimport com.pulumi.equinix.fabric.ConnectionArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionOrderArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointVirtualDeviceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionASideAccessPointInterfaceArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideArgs;\nimport com.pulumi.equinix.fabric.inputs.ConnectionZSideServiceTokenArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var vd2Token = new Connection(\"vd2Token\", ConnectionArgs.builder()\n .name(\"ConnectionName\")\n .type(\"EVPL_VC\")\n .notifications(ConnectionNotificationArgs.builder()\n .type(\"ALL\")\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .build())\n .bandwidth(50)\n .order(ConnectionOrderArgs.builder()\n .purchaseOrderNumber(\"1-323292\")\n .build())\n .aSide(ConnectionASideArgs.builder()\n .accessPoint(ConnectionASideAccessPointArgs.builder()\n .type(\"VD\")\n .virtualDevice(ConnectionASideAccessPointVirtualDeviceArgs.builder()\n .type(\"EDGE\")\n .uuid(\"\u003cdevice_uuid\u003e\")\n .build())\n .interface_(ConnectionASideAccessPointInterfaceArgs.builder()\n .type(\"NETWORK\")\n .id(7)\n .build())\n .build())\n .build())\n .zSide(ConnectionZSideArgs.builder()\n .serviceToken(ConnectionZSideServiceTokenArgs.builder()\n .uuid(\"\u003cservice_token_uuid\u003e\")\n .build())\n .build())\n .build());\n\n }\n}\n```\n```yaml\nresources:\n vd2token:\n type: equinix:fabric:Connection\n properties:\n name: ConnectionName\n type: EVPL_VC\n notifications:\n - type: ALL\n emails:\n - example@equinix.com\n - test1@equinix.com\n bandwidth: 50\n order:\n purchaseOrderNumber: 1-323292\n aSide:\n accessPoint:\n type: VD\n virtualDevice:\n type: EDGE\n uuid: \u003cdevice_uuid\u003e\n interface:\n type: NETWORK\n id: 7\n zSide:\n serviceToken:\n uuid: \u003cservice_token_uuid\u003e\n```\n{{% /example %}}\n\n{{% /examples %}}", + "equinix:fabric/routeFilter:RouteFilter": { + "description": "Fabric V4 API compatible resource allows creation and management of Equinix Fabric Route Filter Policy\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filters\n\n", "properties": { - "aSide": { - "$ref": "#/types/equinix:fabric/ConnectionASide:ConnectionASide", - "description": "Requester or Customer side connection configuration object of the multi-segment connection\n" - }, - "account": { - "$ref": "#/types/equinix:fabric/ConnectionAccount:ConnectionAccount", - "description": "Customer account information that is associated with this connection\n" + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/RouteFilterChangeLog:RouteFilterChangeLog" + } }, - "additionalInfo": { + "changes": { "type": "array", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/types/equinix:fabric/RouteFilterChange:RouteFilterChange" }, - "description": "Connection additional information\n" + "description": "An object with the details of the previous change applied on the Route Filter\n" }, - "bandwidth": { + "connectionsCount": { "type": "integer", - "description": "Connection bandwidth in Mbps\n" - }, - "changeLog": { - "$ref": "#/types/equinix:fabric/ConnectionChangeLog:ConnectionChangeLog", - "description": "Captures connection lifecycle change information\n" + "description": "The number of Fabric Connections that this Route Filter is attached to\n" }, "description": { "type": "string", - "description": "Customer-provided connection description\n" - }, - "direction": { - "type": "string", - "description": "Connection directionality from the requester point of view\n" + "description": "Optional description to add to the Route Filter you will be creating\n" }, "href": { "type": "string", - "description": "Connection URI information\n" - }, - "isRemote": { - "type": "boolean", - "description": "Connection property derived from access point locations\n" + "description": "Route filter URI\n" }, "name": { "type": "string", - "description": "Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/ConnectionNotification:ConnectionNotification" - }, - "description": "Preferences for notifications on connection configuration or status changes\n" - }, - "operation": { - "$ref": "#/types/equinix:fabric/ConnectionOperation:ConnectionOperation", - "description": "Connection type-specific operational data\n" + "description": "Name of the Route Filter\n" }, - "order": { - "$ref": "#/types/equinix:fabric/ConnectionOrder:ConnectionOrder", - "description": "Order details\n" + "notMatchedRuleAction": { + "type": "string", + "description": "The action that will be taken on ip ranges that don't match the rules present within the Route Filter\n" }, "project": { - "$ref": "#/types/equinix:fabric/ConnectionProject:ConnectionProject", - "description": "Project information\n" + "$ref": "#/types/equinix:fabric/RouteFilterProject:RouteFilterProject", + "description": "The Project object that contains project_id and href that is related to the Fabric Project containing connections the Route Filter can be attached to\n" }, - "redundancy": { - "$ref": "#/types/equinix:fabric/ConnectionRedundancy:ConnectionRedundancy", - "description": "Connection Redundancy Configuration\n" + "rulesCount": { + "type": "integer", + "description": "The number of Route Filter Rules attached to this Route Filter\n" }, "state": { "type": "string", - "description": "Connection overall state\n" + "description": "State of the Route Filter in its lifecycle\n" }, "type": { "type": "string", - "description": "Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC\n" + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" }, "uuid": { "type": "string", - "description": "Equinix-assigned connection identifier\n" - }, - "zSide": { - "$ref": "#/types/equinix:fabric/ConnectionZSide:ConnectionZSide", - "description": "Destination or Provider side connection configuration object of the multi-segment connection\n" + "description": "Equinix Assigned ID for Route Filter\n" } }, "required": [ - "aSide", - "account", - "bandwidth", - "changeLog", - "direction", + "changes", + "changeLogs", + "connectionsCount", + "description", "href", - "isRemote", "name", - "notifications", - "operation", - "order", + "notMatchedRuleAction", "project", + "rulesCount", "state", "type", - "uuid", - "zSide" + "uuid" ], "inputProperties": { - "aSide": { - "$ref": "#/types/equinix:fabric/ConnectionASide:ConnectionASide", - "description": "Requester or Customer side connection configuration object of the multi-segment connection\n" - }, - "additionalInfo": { - "type": "array", - "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "description": "Connection additional information\n" - }, - "bandwidth": { - "type": "integer", - "description": "Connection bandwidth in Mbps\n" - }, "description": { "type": "string", - "description": "Customer-provided connection description\n" + "description": "Optional description to add to the Route Filter you will be creating\n" }, "name": { "type": "string", - "description": "Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/ConnectionNotification:ConnectionNotification" - }, - "description": "Preferences for notifications on connection configuration or status changes\n" - }, - "order": { - "$ref": "#/types/equinix:fabric/ConnectionOrder:ConnectionOrder", - "description": "Order details\n" + "description": "Name of the Route Filter\n" }, "project": { - "$ref": "#/types/equinix:fabric/ConnectionProject:ConnectionProject", - "description": "Project information\n" - }, - "redundancy": { - "$ref": "#/types/equinix:fabric/ConnectionRedundancy:ConnectionRedundancy", - "description": "Connection Redundancy Configuration\n" + "$ref": "#/types/equinix:fabric/RouteFilterProject:RouteFilterProject", + "description": "The Project object that contains project_id and href that is related to the Fabric Project containing connections the Route Filter can be attached to\n" }, "type": { "type": "string", - "oneOf": [ - { - "type": "string" - }, - { - "type": "string", - "$ref": "#/types/equinix:fabric/connectionType:ConnectionType" - } - ], - "description": "Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC\n" - }, - "zSide": { - "$ref": "#/types/equinix:fabric/ConnectionZSide:ConnectionZSide", - "description": "Destination or Provider side connection configuration object of the multi-segment connection\n" + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" } }, "requiredInputs": [ - "aSide", - "bandwidth", - "notifications", - "type", - "zSide" + "project", + "type" ], "stateInputs": { - "description": "Input properties used for looking up and filtering Connection resources.\n", + "description": "Input properties used for looking up and filtering RouteFilter resources.\n", "properties": { - "aSide": { - "$ref": "#/types/equinix:fabric/ConnectionASide:ConnectionASide", - "description": "Requester or Customer side connection configuration object of the multi-segment connection\n" - }, - "account": { - "$ref": "#/types/equinix:fabric/ConnectionAccount:ConnectionAccount", - "description": "Customer account information that is associated with this connection\n" + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/RouteFilterChangeLog:RouteFilterChangeLog" + } }, - "additionalInfo": { + "changes": { "type": "array", "items": { - "type": "object", - "additionalProperties": { - "type": "string" - } + "$ref": "#/types/equinix:fabric/RouteFilterChange:RouteFilterChange" }, - "description": "Connection additional information\n" + "description": "An object with the details of the previous change applied on the Route Filter\n" }, - "bandwidth": { + "connectionsCount": { "type": "integer", - "description": "Connection bandwidth in Mbps\n" - }, - "changeLog": { - "$ref": "#/types/equinix:fabric/ConnectionChangeLog:ConnectionChangeLog", - "description": "Captures connection lifecycle change information\n" - }, - "description": { - "type": "string", - "description": "Customer-provided connection description\n" + "description": "The number of Fabric Connections that this Route Filter is attached to\n" }, - "direction": { + "description": { "type": "string", - "description": "Connection directionality from the requester point of view\n" + "description": "Optional description to add to the Route Filter you will be creating\n" }, "href": { "type": "string", - "description": "Connection URI information\n" - }, - "isRemote": { - "type": "boolean", - "description": "Connection property derived from access point locations\n" + "description": "Route filter URI\n" }, "name": { "type": "string", - "description": "Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/ConnectionNotification:ConnectionNotification" - }, - "description": "Preferences for notifications on connection configuration or status changes\n" - }, - "operation": { - "$ref": "#/types/equinix:fabric/ConnectionOperation:ConnectionOperation", - "description": "Connection type-specific operational data\n" + "description": "Name of the Route Filter\n" }, - "order": { - "$ref": "#/types/equinix:fabric/ConnectionOrder:ConnectionOrder", - "description": "Order details\n" + "notMatchedRuleAction": { + "type": "string", + "description": "The action that will be taken on ip ranges that don't match the rules present within the Route Filter\n" }, "project": { - "$ref": "#/types/equinix:fabric/ConnectionProject:ConnectionProject", - "description": "Project information\n" + "$ref": "#/types/equinix:fabric/RouteFilterProject:RouteFilterProject", + "description": "The Project object that contains project_id and href that is related to the Fabric Project containing connections the Route Filter can be attached to\n" }, - "redundancy": { - "$ref": "#/types/equinix:fabric/ConnectionRedundancy:ConnectionRedundancy", - "description": "Connection Redundancy Configuration\n" + "rulesCount": { + "type": "integer", + "description": "The number of Route Filter Rules attached to this Route Filter\n" }, "state": { "type": "string", - "description": "Connection overall state\n" + "description": "State of the Route Filter in its lifecycle\n" }, "type": { "type": "string", - "oneOf": [ - { - "type": "string" - }, - { - "type": "string", - "$ref": "#/types/equinix:fabric/connectionType:ConnectionType" - } - ], - "description": "Defines the connection type like EVPL*VC, EPL*VC, IPWAN*VC, IP*VC, ACCESS*EPL*VC, EVPLAN*VC, EPLAN*VC, EIA*VC, IA*VC, EC_VC\n" + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" }, "uuid": { "type": "string", - "description": "Equinix-assigned connection identifier\n" - }, - "zSide": { - "$ref": "#/types/equinix:fabric/ConnectionZSide:ConnectionZSide", - "description": "Destination or Provider side connection configuration object of the multi-segment connection\n" + "description": "Equinix Assigned ID for Route Filter\n" } }, "type": "object" } }, - "equinix:fabric/network:Network": { - "description": "Fabric V4 API compatible resource allows creation and management of Equinix Fabric Network\n\nAdditional documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/Fabric/IMPLEMENTATION/fabric-networks-implement.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#fabric-networks\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst newNetwork = new equinix.fabric.Network(\"newNetwork\", {\n notifications: [{\n emails: [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n type: \"ALL\",\n }],\n project: {\n projectId: \"776847000642406\",\n },\n scope: \"GLOBAL\",\n type: \"EVPLAN\",\n});\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nnew_network = equinix.fabric.Network(\"newNetwork\",\n notifications=[{\n \"emails\": [\n \"example@equinix.com\",\n \"test1@equinix.com\",\n ],\n \"type\": \"ALL\",\n }],\n project={\n \"project_id\": \"776847000642406\",\n },\n scope=\"GLOBAL\",\n type=\"EVPLAN\")\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var newNetwork = new Equinix.Fabric.Network(\"newNetwork\", new()\n {\n Notifications = new[]\n {\n new Equinix.Fabric.Inputs.NetworkNotificationArgs\n {\n Emails = new[]\n {\n \"example@equinix.com\",\n \"test1@equinix.com\",\n },\n Type = \"ALL\",\n },\n },\n Project = new Equinix.Fabric.Inputs.NetworkProjectArgs\n {\n ProjectId = \"776847000642406\",\n },\n Scope = \"GLOBAL\",\n Type = \"EVPLAN\",\n });\n\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := fabric.NewNetwork(ctx, \"newNetwork\", \u0026fabric.NetworkArgs{\n\t\t\tNotifications: fabric.NetworkNotificationArray{\n\t\t\t\t\u0026fabric.NetworkNotificationArgs{\n\t\t\t\t\tEmails: pulumi.StringArray{\n\t\t\t\t\t\tpulumi.String(\"example@equinix.com\"),\n\t\t\t\t\t\tpulumi.String(\"test1@equinix.com\"),\n\t\t\t\t\t},\n\t\t\t\t\tType: pulumi.String(\"ALL\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tProject: \u0026fabric.NetworkProjectArgs{\n\t\t\t\tProjectId: pulumi.String(\"776847000642406\"),\n\t\t\t},\n\t\t\tScope: pulumi.String(\"GLOBAL\"),\n\t\t\tType: pulumi.String(\"EVPLAN\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.Network;\nimport com.pulumi.equinix.fabric.NetworkArgs;\nimport com.pulumi.equinix.fabric.inputs.NetworkNotificationArgs;\nimport com.pulumi.equinix.fabric.inputs.NetworkProjectArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var newNetwork = new Network(\"newNetwork\", NetworkArgs.builder()\n .notifications(NetworkNotificationArgs.builder()\n .emails( \n \"example@equinix.com\",\n \"test1@equinix.com\")\n .type(\"ALL\")\n .build())\n .project(NetworkProjectArgs.builder()\n .projectId(\"776847000642406\")\n .build())\n .scope(\"GLOBAL\")\n .type(\"EVPLAN\")\n .build());\n\n }\n}\n```\n```yaml\nresources:\n newNetwork:\n type: equinix:fabric:Network\n properties:\n notifications:\n - emails:\n - example@equinix.com\n - test1@equinix.com\n type: ALL\n project:\n projectId: '776847000642406'\n scope: GLOBAL\n type: EVPLAN\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "equinix:fabric/routeFilterRule:RouteFilterRule": { + "description": "Fabric V4 API compatible resource allows creation and management of Equinix Fabric Route Filter Rule\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filter-rules\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@equinix-labs/pulumi-equinix\";\n\nconst rfRule = new equinix.fabric.RouteFilterRule(\"rfRule\", {\n routeFilterId: \"\u003croute_filter_policy_id\u003e\",\n prefix: \"192.168.0.0/24\",\n prefixMatch: \"exact\",\n description: \"Route Filter Rule for X Purpose\",\n});\nexport const routeFilterRuleId = rfRule.id;\nexport const routeFilterId = rfRule.routeFilterId;\nexport const routeFilterRulePrefix = rfRule.prefix;\nexport const routeFilterRulePrefixMatch = rfRule.prefixMatch;\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nrf_rule = equinix.fabric.RouteFilterRule(\"rfRule\",\n route_filter_id=\"\u003croute_filter_policy_id\u003e\",\n prefix=\"192.168.0.0/24\",\n prefix_match=\"exact\",\n description=\"Route Filter Rule for X Purpose\")\npulumi.export(\"routeFilterRuleId\", rf_rule.id)\npulumi.export(\"routeFilterId\", rf_rule.route_filter_id)\npulumi.export(\"routeFilterRulePrefix\", rf_rule.prefix)\npulumi.export(\"routeFilterRulePrefixMatch\", rf_rule.prefix_match)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rfRule = new Equinix.Fabric.RouteFilterRule(\"rfRule\", new()\n {\n RouteFilterId = \"\u003croute_filter_policy_id\u003e\",\n Prefix = \"192.168.0.0/24\",\n PrefixMatch = \"exact\",\n Description = \"Route Filter Rule for X Purpose\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"routeFilterRuleId\"] = rfRule.Id,\n [\"routeFilterId\"] = rfRule.RouteFilterId,\n [\"routeFilterRulePrefix\"] = rfRule.Prefix,\n [\"routeFilterRulePrefixMatch\"] = rfRule.PrefixMatch,\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trfRule, err := fabric.NewRouteFilterRule(ctx, \"rfRule\", \u0026fabric.RouteFilterRuleArgs{\n\t\t\tRouteFilterId: pulumi.String(\"\u003croute_filter_policy_id\u003e\"),\n\t\t\tPrefix: pulumi.String(\"192.168.0.0/24\"),\n\t\t\tPrefixMatch: pulumi.String(\"exact\"),\n\t\t\tDescription: pulumi.String(\"Route Filter Rule for X Purpose\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"routeFilterRuleId\", rfRule.ID())\n\t\tctx.Export(\"routeFilterId\", rfRule.RouteFilterId)\n\t\tctx.Export(\"routeFilterRulePrefix\", rfRule.Prefix)\n\t\tctx.Export(\"routeFilterRulePrefixMatch\", rfRule.PrefixMatch)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.RouteFilterRule;\nimport com.pulumi.equinix.fabric.RouteFilterRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n var rfRule = new RouteFilterRule(\"rfRule\", RouteFilterRuleArgs.builder()\n .routeFilterId(\"\u003croute_filter_policy_id\u003e\")\n .prefix(\"192.168.0.0/24\")\n .prefixMatch(\"exact\")\n .description(\"Route Filter Rule for X Purpose\")\n .build());\n\n ctx.export(\"routeFilterRuleId\", rfRule.id());\n ctx.export(\"routeFilterId\", rfRule.routeFilterId());\n ctx.export(\"routeFilterRulePrefix\", rfRule.prefix());\n ctx.export(\"routeFilterRulePrefixMatch\", rfRule.prefixMatch());\n }\n}\n```\n```yaml\nresources:\n rfRule:\n type: equinix:fabric:RouteFilterRule\n properties:\n routeFilterId: \u003croute_filter_policy_id\u003e\n prefix: 192.168.0.0/24\n prefixMatch: exact\n description: Route Filter Rule for X Purpose\noutputs:\n routeFilterRuleId: ${rfRule.id}\n routeFilterId: ${rfRule.routeFilterId}\n routeFilterRulePrefix: ${rfRule.prefix}\n routeFilterRulePrefixMatch: ${rfRule.prefixMatch}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "properties": { - "change": { - "$ref": "#/types/equinix:fabric/NetworkChange:NetworkChange", - "description": "Information on asset change operation\n" + "action": { + "type": "string", + "description": "Action that will be taken on IP Addresses matching the rule\n" }, - "changeLog": { - "$ref": "#/types/equinix:fabric/NetworkChangeLog:NetworkChangeLog", - "description": "A permanent record of asset creation, modification, or deletion\n" + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/RouteFilterRuleChangeLog:RouteFilterRuleChangeLog" + } }, - "connectionsCount": { - "type": "integer", - "description": "Number of connections associated with this network\n" + "changes": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/RouteFilterRuleChange:RouteFilterRuleChange" + }, + "description": "An object with the details of the previous change applied on the Route Filter\n" }, - "href": { + "description": { "type": "string", - "description": "Fabric Network URI information\n" + "description": "Optional description to add to the Route Filter you will be creating\n" }, - "location": { - "$ref": "#/types/equinix:fabric/NetworkLocation:NetworkLocation", - "description": "Fabric Network location\n" + "href": { + "type": "string", + "description": "Route filter rules URI\n" }, "name": { "type": "string", - "description": "Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/NetworkNotification:NetworkNotification" - }, - "description": "Preferences for notifications on Fabric Network configuration or status changes\n" + "description": "Name of the Route Filter\n" }, - "operation": { - "$ref": "#/types/equinix:fabric/NetworkOperation:NetworkOperation", - "description": "Network operation information that is associated with this Fabric Network\n" + "prefix": { + "type": "string", + "description": "IP Address Prefix to Filter on\n" }, - "project": { - "$ref": "#/types/equinix:fabric/NetworkProject:NetworkProject", - "description": "Fabric Network project\n" + "prefixMatch": { + "type": "string", + "description": "Prefix matching operator. One of [ orlonger, exact ] Default: \"orlonger\"\n" }, - "scope": { + "routeFilterId": { "type": "string", - "description": "Fabric Network scope\n" + "description": "UUID of the Route Filter Policy to apply this Rule to\n" }, "state": { "type": "string", - "description": "Fabric Network overall state\n" + "description": "State of the Route Filter Rule in its lifecycle\n" }, "type": { "type": "string", - "description": "Supported Network types - EVPLAN, EPLAN, IPWAN\n" + "description": "Route Filter Type. One of [ BGP*IPv4*PREFIX*FILTER*RULE, BGP*IPv6*PREFIX*FILTER*RULE ]\n" }, "uuid": { "type": "string", - "description": "Equinix-assigned network identifier\n" + "description": "Equinix Assigned ID for Route Filter Rule\n" } }, "required": [ - "change", - "changeLog", - "connectionsCount", + "action", + "changes", + "changeLogs", + "description", "href", - "location", "name", - "notifications", - "operation", - "project", - "scope", + "prefix", + "prefixMatch", + "routeFilterId", "state", "type", "uuid" ], "inputProperties": { - "location": { - "$ref": "#/types/equinix:fabric/NetworkLocation:NetworkLocation", - "description": "Fabric Network location\n" + "description": { + "type": "string", + "description": "Optional description to add to the Route Filter you will be creating\n" }, "name": { "type": "string", - "description": "Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/NetworkNotification:NetworkNotification" - }, - "description": "Preferences for notifications on Fabric Network configuration or status changes\n" + "description": "Name of the Route Filter\n" }, - "project": { - "$ref": "#/types/equinix:fabric/NetworkProject:NetworkProject", - "description": "Fabric Network project\n" + "prefix": { + "type": "string", + "description": "IP Address Prefix to Filter on\n" }, - "scope": { + "prefixMatch": { "type": "string", - "description": "Fabric Network scope\n" + "description": "Prefix matching operator. One of [ orlonger, exact ] Default: \"orlonger\"\n" }, - "type": { + "routeFilterId": { "type": "string", - "description": "Supported Network types - EVPLAN, EPLAN, IPWAN\n" + "description": "UUID of the Route Filter Policy to apply this Rule to\n" } }, "requiredInputs": [ - "notifications", - "project", - "scope", - "type" + "prefix", + "routeFilterId" ], "stateInputs": { - "description": "Input properties used for looking up and filtering Network resources.\n", + "description": "Input properties used for looking up and filtering RouteFilterRule resources.\n", "properties": { - "change": { - "$ref": "#/types/equinix:fabric/NetworkChange:NetworkChange", - "description": "Information on asset change operation\n" + "action": { + "type": "string", + "description": "Action that will be taken on IP Addresses matching the rule\n" }, - "changeLog": { - "$ref": "#/types/equinix:fabric/NetworkChangeLog:NetworkChangeLog", - "description": "A permanent record of asset creation, modification, or deletion\n" + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/RouteFilterRuleChangeLog:RouteFilterRuleChangeLog" + } }, - "connectionsCount": { - "type": "integer", - "description": "Number of connections associated with this network\n" + "changes": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/RouteFilterRuleChange:RouteFilterRuleChange" + }, + "description": "An object with the details of the previous change applied on the Route Filter\n" }, - "href": { + "description": { "type": "string", - "description": "Fabric Network URI information\n" + "description": "Optional description to add to the Route Filter you will be creating\n" }, - "location": { - "$ref": "#/types/equinix:fabric/NetworkLocation:NetworkLocation", - "description": "Fabric Network location\n" + "href": { + "type": "string", + "description": "Route filter rules URI\n" }, "name": { "type": "string", - "description": "Fabric Network name. An alpha-numeric 24 characters string which can include only hyphens and underscores\n" - }, - "notifications": { - "type": "array", - "items": { - "$ref": "#/types/equinix:fabric/NetworkNotification:NetworkNotification" - }, - "description": "Preferences for notifications on Fabric Network configuration or status changes\n" + "description": "Name of the Route Filter\n" }, - "operation": { - "$ref": "#/types/equinix:fabric/NetworkOperation:NetworkOperation", - "description": "Network operation information that is associated with this Fabric Network\n" + "prefix": { + "type": "string", + "description": "IP Address Prefix to Filter on\n" }, - "project": { - "$ref": "#/types/equinix:fabric/NetworkProject:NetworkProject", - "description": "Fabric Network project\n" + "prefixMatch": { + "type": "string", + "description": "Prefix matching operator. One of [ orlonger, exact ] Default: \"orlonger\"\n" }, - "scope": { + "routeFilterId": { "type": "string", - "description": "Fabric Network scope\n" + "description": "UUID of the Route Filter Policy to apply this Rule to\n" }, "state": { "type": "string", - "description": "Fabric Network overall state\n" + "description": "State of the Route Filter Rule in its lifecycle\n" }, "type": { "type": "string", - "description": "Supported Network types - EVPLAN, EPLAN, IPWAN\n" + "description": "Route Filter Type. One of [ BGP*IPv4*PREFIX*FILTER*RULE, BGP*IPv6*PREFIX*FILTER*RULE ]\n" }, "uuid": { "type": "string", - "description": "Equinix-assigned network identifier\n" + "description": "Equinix Assigned ID for Route Filter Rule\n" } }, "type": "object" @@ -19380,6 +20785,125 @@ ] } }, + "equinix:fabric/getConnectionRouteFilter:getConnectionRouteFilter": { + "description": "Fabric V4 API compatible data resource that allow user to fetch route filter policy attachment to a fabric connection\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filter-rules\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@pulumi/equinix\";\n\nconst attachedPolicy = equinix.fabric.getConnectionRouteFilter({\n connectionId: \"\u003cconnection_uuid\u003e\",\n routeFilterId: \"\u003croute_filter_uuid\u003e\",\n});\nexport const connectionRouteFilterId = attachedPolicy.then(attachedPolicy =\u003e attachedPolicy.id);\nexport const connectionRouteFilterConnectionId = attachedPolicy.then(attachedPolicy =\u003e attachedPolicy.connectionId);\nexport const connectionRouteFilterDirection = attachedPolicy.then(attachedPolicy =\u003e attachedPolicy.direction);\nexport const connectionRouteFilterType = attachedPolicy.then(attachedPolicy =\u003e attachedPolicy.type);\nexport const connectionRouteFilterAttachmentStatus = attachedPolicy.then(attachedPolicy =\u003e attachedPolicy.attachmentStatus);\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nattached_policy = equinix.fabric.get_connection_route_filter(connection_id=\"\u003cconnection_uuid\u003e\",\n route_filter_id=\"\u003croute_filter_uuid\u003e\")\npulumi.export(\"connectionRouteFilterId\", attached_policy.id)\npulumi.export(\"connectionRouteFilterConnectionId\", attached_policy.connection_id)\npulumi.export(\"connectionRouteFilterDirection\", attached_policy.direction)\npulumi.export(\"connectionRouteFilterType\", attached_policy.type)\npulumi.export(\"connectionRouteFilterAttachmentStatus\", attached_policy.attachment_status)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var attachedPolicy = Equinix.Fabric.GetConnectionRouteFilter.Invoke(new()\n {\n ConnectionId = \"\u003cconnection_uuid\u003e\",\n RouteFilterId = \"\u003croute_filter_uuid\u003e\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"connectionRouteFilterId\"] = attachedPolicy.Apply(getConnectionRouteFilterResult =\u003e getConnectionRouteFilterResult.Id),\n [\"connectionRouteFilterConnectionId\"] = attachedPolicy.Apply(getConnectionRouteFilterResult =\u003e getConnectionRouteFilterResult.ConnectionId),\n [\"connectionRouteFilterDirection\"] = attachedPolicy.Apply(getConnectionRouteFilterResult =\u003e getConnectionRouteFilterResult.Direction),\n [\"connectionRouteFilterType\"] = attachedPolicy.Apply(getConnectionRouteFilterResult =\u003e getConnectionRouteFilterResult.Type),\n [\"connectionRouteFilterAttachmentStatus\"] = attachedPolicy.Apply(getConnectionRouteFilterResult =\u003e getConnectionRouteFilterResult.AttachmentStatus),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tattachedPolicy, err := fabric.LookupConnectionRouteFilter(ctx, \u0026fabric.LookupConnectionRouteFilterArgs{\n\t\t\tConnectionId: \"\u003cconnection_uuid\u003e\",\n\t\t\tRouteFilterId: \"\u003croute_filter_uuid\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"connectionRouteFilterId\", attachedPolicy.Id)\n\t\tctx.Export(\"connectionRouteFilterConnectionId\", attachedPolicy.ConnectionId)\n\t\tctx.Export(\"connectionRouteFilterDirection\", attachedPolicy.Direction)\n\t\tctx.Export(\"connectionRouteFilterType\", attachedPolicy.Type)\n\t\tctx.Export(\"connectionRouteFilterAttachmentStatus\", attachedPolicy.AttachmentStatus)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.FabricFunctions;\nimport com.pulumi.equinix.fabric.inputs.GetConnectionRouteFilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var attachedPolicy = FabricFunctions.getConnectionRouteFilter(GetConnectionRouteFilterArgs.builder()\n .connectionId(\"\u003cconnection_uuid\u003e\")\n .routeFilterId(\"\u003croute_filter_uuid\u003e\")\n .build());\n\n ctx.export(\"connectionRouteFilterId\", attachedPolicy.applyValue(getConnectionRouteFilterResult -\u003e getConnectionRouteFilterResult.id()));\n ctx.export(\"connectionRouteFilterConnectionId\", attachedPolicy.applyValue(getConnectionRouteFilterResult -\u003e getConnectionRouteFilterResult.connectionId()));\n ctx.export(\"connectionRouteFilterDirection\", attachedPolicy.applyValue(getConnectionRouteFilterResult -\u003e getConnectionRouteFilterResult.direction()));\n ctx.export(\"connectionRouteFilterType\", attachedPolicy.applyValue(getConnectionRouteFilterResult -\u003e getConnectionRouteFilterResult.type()));\n ctx.export(\"connectionRouteFilterAttachmentStatus\", attachedPolicy.applyValue(getConnectionRouteFilterResult -\u003e getConnectionRouteFilterResult.attachmentStatus()));\n }\n}\n```\n```yaml\nvariables:\n attachedPolicy:\n fn::invoke:\n Function: equinix:fabric:getConnectionRouteFilter\n Arguments:\n connectionId: \u003cconnection_uuid\u003e\n routeFilterId: \u003croute_filter_uuid\u003e\noutputs:\n connectionRouteFilterId: ${attachedPolicy.id}\n connectionRouteFilterConnectionId: ${attachedPolicy.connectionId}\n connectionRouteFilterDirection: ${attachedPolicy.direction}\n connectionRouteFilterType: ${attachedPolicy.type}\n connectionRouteFilterAttachmentStatus: ${attachedPolicy.attachmentStatus}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getConnectionRouteFilter.\n", + "properties": { + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n" + }, + "routeFilterId": { + "type": "string", + "description": "Equinix Assigned UUID of the Route Filter Policy to attach to the Equinix Connection\n" + } + }, + "type": "object", + "required": [ + "connectionId", + "routeFilterId" + ] + }, + "outputs": { + "description": "A collection of values returned by getConnectionRouteFilter.\n", + "properties": { + "attachmentStatus": { + "type": "string", + "description": "Status of the Route Filter Policy attachment lifecycle\n" + }, + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n" + }, + "direction": { + "type": "string", + "description": "Direction of the filtering of the attached Route Filter Policy\n" + }, + "href": { + "type": "string", + "description": "URI to the attached Route Filter Policy on the Connection\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "routeFilterId": { + "type": "string", + "description": "Equinix Assigned UUID of the Route Filter Policy to attach to the Equinix Connection\n" + }, + "type": { + "type": "string", + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Policy\n" + } + }, + "type": "object", + "required": [ + "attachmentStatus", + "connectionId", + "direction", + "href", + "routeFilterId", + "type", + "uuid", + "id" + ] + } + }, + "equinix:fabric/getConnectionRouteFilters:getConnectionRouteFilters": { + "description": "Fabric V4 API compatible data resource that allow user to fetch all route filter policies attached to a fabric connection\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filter-rules\n\n", + "inputs": { + "description": "A collection of arguments for invoking getConnectionRouteFilters.\n", + "properties": { + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n" + } + }, + "type": "object", + "required": [ + "connectionId" + ] + }, + "outputs": { + "description": "A collection of values returned by getConnectionRouteFilters.\n", + "properties": { + "connectionId": { + "type": "string", + "description": "Equinix Assigned UUID of the Equinix Connection to attach the Route Filter Policy to\n" + }, + "datas": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getConnectionRouteFiltersData:getConnectionRouteFiltersData" + }, + "description": "The list of Rules attached to the given Route Filter Policy UUID\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "paginations": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getConnectionRouteFiltersPagination:getConnectionRouteFiltersPagination" + }, + "description": "Pagination details for the Data Source Search Request\n" + } + }, + "type": "object", + "required": [ + "connectionId", + "datas", + "paginations", + "id" + ] + } + }, "equinix:fabric/getConnections:getConnections": { "description": "Fabric V4 API compatible data resource that allow user to fetch connection for a given UUID\n\nAdditional documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/Fabric/IMPLEMENTATION/fabric-connections-implement.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#connections\n\n", "inputs": { @@ -19873,6 +21397,338 @@ ] } }, + "equinix:fabric/getRouteFilter:getRouteFilter": { + "description": "Fabric V4 API compatible data resource that allow user to fetch route filter for a given UUID\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filters\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@pulumi/equinix\";\n\nconst rfPolicy = equinix.fabric.getRouteFilter({\n uuid: \"\u003cuuid_of_route_filter\",\n});\nexport const id = rfPolicy.then(rfPolicy =\u003e rfPolicy.id);\nexport const type = rfPolicy.then(rfPolicy =\u003e rfPolicy.type);\nexport const state = rfPolicy.then(rfPolicy =\u003e rfPolicy.state);\nexport const notMatchedRulesAction = rfPolicy.then(rfPolicy =\u003e rfPolicy.notMatchedRuleAction);\nexport const connectionsCount = rfPolicy.then(rfPolicy =\u003e rfPolicy.connectionsCount);\nexport const rulesCount = rfPolicy.then(rfPolicy =\u003e rfPolicy.rulesCount);\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nrf_policy = equinix.fabric.get_route_filter(uuid=\"\u003cuuid_of_route_filter\")\npulumi.export(\"id\", rf_policy.id)\npulumi.export(\"type\", rf_policy.type)\npulumi.export(\"state\", rf_policy.state)\npulumi.export(\"notMatchedRulesAction\", rf_policy.not_matched_rule_action)\npulumi.export(\"connectionsCount\", rf_policy.connections_count)\npulumi.export(\"rulesCount\", rf_policy.rules_count)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rfPolicy = Equinix.Fabric.GetRouteFilter.Invoke(new()\n {\n Uuid = \"\u003cuuid_of_route_filter\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"id\"] = rfPolicy.Apply(getRouteFilterResult =\u003e getRouteFilterResult.Id),\n [\"type\"] = rfPolicy.Apply(getRouteFilterResult =\u003e getRouteFilterResult.Type),\n [\"state\"] = rfPolicy.Apply(getRouteFilterResult =\u003e getRouteFilterResult.State),\n [\"notMatchedRulesAction\"] = rfPolicy.Apply(getRouteFilterResult =\u003e getRouteFilterResult.NotMatchedRuleAction),\n [\"connectionsCount\"] = rfPolicy.Apply(getRouteFilterResult =\u003e getRouteFilterResult.ConnectionsCount),\n [\"rulesCount\"] = rfPolicy.Apply(getRouteFilterResult =\u003e getRouteFilterResult.RulesCount),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trfPolicy, err := fabric.LookupRouteFilter(ctx, \u0026fabric.LookupRouteFilterArgs{\n\t\t\tUuid: \"\u003cuuid_of_route_filter\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", rfPolicy.Id)\n\t\tctx.Export(\"type\", rfPolicy.Type)\n\t\tctx.Export(\"state\", rfPolicy.State)\n\t\tctx.Export(\"notMatchedRulesAction\", rfPolicy.NotMatchedRuleAction)\n\t\tctx.Export(\"connectionsCount\", rfPolicy.ConnectionsCount)\n\t\tctx.Export(\"rulesCount\", rfPolicy.RulesCount)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.FabricFunctions;\nimport com.pulumi.equinix.fabric.inputs.GetRouteFilterArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rfPolicy = FabricFunctions.getRouteFilter(GetRouteFilterArgs.builder()\n .uuid(\"\u003cuuid_of_route_filter\")\n .build());\n\n ctx.export(\"id\", rfPolicy.applyValue(getRouteFilterResult -\u003e getRouteFilterResult.id()));\n ctx.export(\"type\", rfPolicy.applyValue(getRouteFilterResult -\u003e getRouteFilterResult.type()));\n ctx.export(\"state\", rfPolicy.applyValue(getRouteFilterResult -\u003e getRouteFilterResult.state()));\n ctx.export(\"notMatchedRulesAction\", rfPolicy.applyValue(getRouteFilterResult -\u003e getRouteFilterResult.notMatchedRuleAction()));\n ctx.export(\"connectionsCount\", rfPolicy.applyValue(getRouteFilterResult -\u003e getRouteFilterResult.connectionsCount()));\n ctx.export(\"rulesCount\", rfPolicy.applyValue(getRouteFilterResult -\u003e getRouteFilterResult.rulesCount()));\n }\n}\n```\n```yaml\nvariables:\n rfPolicy:\n fn::invoke:\n Function: equinix:fabric:getRouteFilter\n Arguments:\n uuid: \u003cuuid_of_route_filter\noutputs:\n id: ${rfPolicy.id}\n type: ${rfPolicy.type}\n state: ${rfPolicy.state}\n notMatchedRulesAction: ${rfPolicy.notMatchedRuleAction}\n connectionsCount: ${rfPolicy.connectionsCount}\n rulesCount: ${rfPolicy.rulesCount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getRouteFilter.\n", + "properties": { + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter\n" + } + }, + "type": "object", + "required": [ + "uuid" + ] + }, + "outputs": { + "description": "A collection of values returned by getRouteFilter.\n", + "properties": { + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterChangeLog:getRouteFilterChangeLog" + } + }, + "changes": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterChange:getRouteFilterChange" + }, + "description": "An object with the details of the previous change applied on the Route Filter\n" + }, + "connectionsCount": { + "type": "integer", + "description": "The number of Fabric Connections that this Route Filter is attached to\n" + }, + "description": { + "type": "string", + "description": "Optional description to add to the Route Filter you will be creating\n" + }, + "href": { + "type": "string", + "description": "Route filter URI\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "name": { + "type": "string", + "description": "Name of the Route Filter\n" + }, + "notMatchedRuleAction": { + "type": "string", + "description": "The action that will be taken on ip ranges that don't match the rules present within the Route Filter\n" + }, + "projects": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterProject:getRouteFilterProject" + }, + "description": "The Project object that contains project_id and href that is related to the Fabric Project containing connections the Route Filter can be attached to\n" + }, + "rulesCount": { + "type": "integer", + "description": "The number of Route Filter Rules attached to this Route Filter\n" + }, + "state": { + "type": "string", + "description": "State of the Route Filter in its lifecycle\n" + }, + "type": { + "type": "string", + "description": "Route Filter Type. One of [ \"BGP*IPv4*PREFIX*FILTER\", \"BGP*IPv6*PREFIX*FILTER\" ]\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter\n" + } + }, + "type": "object", + "required": [ + "changes", + "changeLogs", + "connectionsCount", + "description", + "href", + "name", + "notMatchedRuleAction", + "projects", + "rulesCount", + "state", + "type", + "uuid", + "id" + ] + } + }, + "equinix:fabric/getRouteFilterRule:getRouteFilterRule": { + "description": "Fabric V4 API compatible data resource that allow user to fetch route filter for a given UUID\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filter-rules\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@pulumi/equinix\";\n\nconst rfRule = equinix.fabric.getRouteFilterRule({\n routeFilterId: \"\u003croute_filter_policy_id\u003e\",\n uuid: \"\u003croute_filter_rule_uuid\u003e\",\n});\nexport const routeFilterRuleName = rfRule.then(rfRule =\u003e rfRule.name);\nexport const routeFilterRuleDescription = rfRule.then(rfRule =\u003e rfRule.description);\nexport const routeFilterRulePrefix = rfRule.then(rfRule =\u003e rfRule.prefix);\nexport const routeFilterRulePrefixMatch = rfRule.then(rfRule =\u003e rfRule.prefixMatch);\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nrf_rule = equinix.fabric.get_route_filter_rule(route_filter_id=\"\u003croute_filter_policy_id\u003e\",\n uuid=\"\u003croute_filter_rule_uuid\u003e\")\npulumi.export(\"routeFilterRuleName\", rf_rule.name)\npulumi.export(\"routeFilterRuleDescription\", rf_rule.description)\npulumi.export(\"routeFilterRulePrefix\", rf_rule.prefix)\npulumi.export(\"routeFilterRulePrefixMatch\", rf_rule.prefix_match)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rfRule = Equinix.Fabric.GetRouteFilterRule.Invoke(new()\n {\n RouteFilterId = \"\u003croute_filter_policy_id\u003e\",\n Uuid = \"\u003croute_filter_rule_uuid\u003e\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"routeFilterRuleName\"] = rfRule.Apply(getRouteFilterRuleResult =\u003e getRouteFilterRuleResult.Name),\n [\"routeFilterRuleDescription\"] = rfRule.Apply(getRouteFilterRuleResult =\u003e getRouteFilterRuleResult.Description),\n [\"routeFilterRulePrefix\"] = rfRule.Apply(getRouteFilterRuleResult =\u003e getRouteFilterRuleResult.Prefix),\n [\"routeFilterRulePrefixMatch\"] = rfRule.Apply(getRouteFilterRuleResult =\u003e getRouteFilterRuleResult.PrefixMatch),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trfRule, err := fabric.LookupRouteFilterRule(ctx, \u0026fabric.LookupRouteFilterRuleArgs{\n\t\t\tRouteFilterId: \"\u003croute_filter_policy_id\u003e\",\n\t\t\tUuid: \"\u003croute_filter_rule_uuid\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"routeFilterRuleName\", rfRule.Name)\n\t\tctx.Export(\"routeFilterRuleDescription\", rfRule.Description)\n\t\tctx.Export(\"routeFilterRulePrefix\", rfRule.Prefix)\n\t\tctx.Export(\"routeFilterRulePrefixMatch\", rfRule.PrefixMatch)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.FabricFunctions;\nimport com.pulumi.equinix.fabric.inputs.GetRouteFilterRuleArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rfRule = FabricFunctions.getRouteFilterRule(GetRouteFilterRuleArgs.builder()\n .routeFilterId(\"\u003croute_filter_policy_id\u003e\")\n .uuid(\"\u003croute_filter_rule_uuid\u003e\")\n .build());\n\n ctx.export(\"routeFilterRuleName\", rfRule.applyValue(getRouteFilterRuleResult -\u003e getRouteFilterRuleResult.name()));\n ctx.export(\"routeFilterRuleDescription\", rfRule.applyValue(getRouteFilterRuleResult -\u003e getRouteFilterRuleResult.description()));\n ctx.export(\"routeFilterRulePrefix\", rfRule.applyValue(getRouteFilterRuleResult -\u003e getRouteFilterRuleResult.prefix()));\n ctx.export(\"routeFilterRulePrefixMatch\", rfRule.applyValue(getRouteFilterRuleResult -\u003e getRouteFilterRuleResult.prefixMatch()));\n }\n}\n```\n```yaml\nvariables:\n rfRule:\n fn::invoke:\n Function: equinix:fabric:getRouteFilterRule\n Arguments:\n routeFilterId: \u003croute_filter_policy_id\u003e\n uuid: \u003croute_filter_rule_uuid\u003e\noutputs:\n routeFilterRuleName: ${rfRule.name}\n routeFilterRuleDescription: ${rfRule.description}\n routeFilterRulePrefix: ${rfRule.prefix}\n routeFilterRulePrefixMatch: ${rfRule.prefixMatch}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getRouteFilterRule.\n", + "properties": { + "routeFilterId": { + "type": "string", + "description": "UUID of the Route Filter Policy the rule is attached to\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Rule to retrieve data for\n" + } + }, + "type": "object", + "required": [ + "routeFilterId", + "uuid" + ] + }, + "outputs": { + "description": "A collection of values returned by getRouteFilterRule.\n", + "properties": { + "action": { + "type": "string", + "description": "Action that will be taken on IP Addresses matching the rule\n" + }, + "changeLogs": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterRuleChangeLog:getRouteFilterRuleChangeLog" + } + }, + "changes": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterRuleChange:getRouteFilterRuleChange" + }, + "description": "An object with the details of the previous change applied on the Route Filter\n" + }, + "description": { + "type": "string", + "description": "Optional description to add to the Route Filter you will be creating\n" + }, + "href": { + "type": "string", + "description": "Route filter rules URI\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "name": { + "type": "string", + "description": "Name of the Route Filter\n" + }, + "prefix": { + "type": "string", + "description": "IP Address Prefix to Filter on\n" + }, + "prefixMatch": { + "type": "string", + "description": "Prefix matching operator. One of [ orlonger, exact ] Default: \"orlonger\"\n" + }, + "routeFilterId": { + "type": "string", + "description": "UUID of the Route Filter Policy the rule is attached to\n" + }, + "state": { + "type": "string", + "description": "State of the Route Filter Rule in its lifecycle\n" + }, + "type": { + "type": "string", + "description": "Route Filter Type. One of [ BGP*IPv4*PREFIX*FILTER*RULE, BGP*IPv6*PREFIX*FILTER*RULE ]\n" + }, + "uuid": { + "type": "string", + "description": "Equinix Assigned ID for Route Filter Rule to retrieve data for\n" + } + }, + "type": "object", + "required": [ + "action", + "changes", + "changeLogs", + "description", + "href", + "name", + "prefix", + "prefixMatch", + "routeFilterId", + "state", + "type", + "uuid", + "id" + ] + } + }, + "equinix:fabric/getRouteFilterRules:getRouteFilterRules": { + "description": "Fabric V4 API compatible data resource that allow user to fetch route filter for a given search data set\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filter-rules\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@pulumi/equinix\";\n\nconst rfRules = equinix.fabric.getRouteFilterRules({\n routeFilterId: \"\u003croute_filter_policy_id\",\n limit: 100,\n offset: 5,\n});\nexport const firstRouteFilterRuleName = rfRules.then(rfRules =\u003e rfRules.datas?.[0]?.name);\nexport const firstRouteFilterRuleDescription = rfRules.then(rfRules =\u003e rfRules.datas?.[0]?.description);\nexport const firstRouteFilterRulePrefix = rfRules.then(rfRules =\u003e rfRules.datas?.[0]?.prefix);\nexport const firstRouteFilterRulePrefixMatch = rfRules.then(rfRules =\u003e rfRules.datas?.[0]?.prefixMatch);\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nrf_rules = equinix.fabric.get_route_filter_rules(route_filter_id=\"\u003croute_filter_policy_id\",\n limit=100,\n offset=5)\npulumi.export(\"firstRouteFilterRuleName\", rf_rules.datas[0].name)\npulumi.export(\"firstRouteFilterRuleDescription\", rf_rules.datas[0].description)\npulumi.export(\"firstRouteFilterRulePrefix\", rf_rules.datas[0].prefix)\npulumi.export(\"firstRouteFilterRulePrefixMatch\", rf_rules.datas[0].prefix_match)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rfRules = Equinix.Fabric.GetRouteFilterRules.Invoke(new()\n {\n RouteFilterId = \"\u003croute_filter_policy_id\",\n Limit = 100,\n Offset = 5,\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"firstRouteFilterRuleName\"] = rfRules.Apply(getRouteFilterRulesResult =\u003e getRouteFilterRulesResult.Datas[0]?.Name),\n [\"firstRouteFilterRuleDescription\"] = rfRules.Apply(getRouteFilterRulesResult =\u003e getRouteFilterRulesResult.Datas[0]?.Description),\n [\"firstRouteFilterRulePrefix\"] = rfRules.Apply(getRouteFilterRulesResult =\u003e getRouteFilterRulesResult.Datas[0]?.Prefix),\n [\"firstRouteFilterRulePrefixMatch\"] = rfRules.Apply(getRouteFilterRulesResult =\u003e getRouteFilterRulesResult.Datas[0]?.PrefixMatch),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trfRules, err := fabric.GetRouteFilterRules(ctx, \u0026fabric.GetRouteFilterRulesArgs{\n\t\t\tRouteFilterId: \"\u003croute_filter_policy_id\",\n\t\t\tLimit: pulumi.IntRef(100),\n\t\t\tOffset: pulumi.IntRef(5),\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRouteFilterRuleName\", rfRules.Datas[0].Name)\n\t\tctx.Export(\"firstRouteFilterRuleDescription\", rfRules.Datas[0].Description)\n\t\tctx.Export(\"firstRouteFilterRulePrefix\", rfRules.Datas[0].Prefix)\n\t\tctx.Export(\"firstRouteFilterRulePrefixMatch\", rfRules.Datas[0].PrefixMatch)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.FabricFunctions;\nimport com.pulumi.equinix.fabric.inputs.GetRouteFilterRulesArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rfRules = FabricFunctions.getRouteFilterRules(GetRouteFilterRulesArgs.builder()\n .routeFilterId(\"\u003croute_filter_policy_id\")\n .limit(100)\n .offset(5)\n .build());\n\n ctx.export(\"firstRouteFilterRuleName\", rfRules.applyValue(getRouteFilterRulesResult -\u003e getRouteFilterRulesResult.datas()[0].name()));\n ctx.export(\"firstRouteFilterRuleDescription\", rfRules.applyValue(getRouteFilterRulesResult -\u003e getRouteFilterRulesResult.datas()[0].description()));\n ctx.export(\"firstRouteFilterRulePrefix\", rfRules.applyValue(getRouteFilterRulesResult -\u003e getRouteFilterRulesResult.datas()[0].prefix()));\n ctx.export(\"firstRouteFilterRulePrefixMatch\", rfRules.applyValue(getRouteFilterRulesResult -\u003e getRouteFilterRulesResult.datas()[0].prefixMatch()));\n }\n}\n```\n```yaml\nvariables:\n rfRules:\n fn::invoke:\n Function: equinix:fabric:getRouteFilterRules\n Arguments:\n routeFilterId: \u003croute_filter_policy_id\n limit: 100\n offset: 5\noutputs:\n firstRouteFilterRuleName: ${rfRules.datas[0].name}\n firstRouteFilterRuleDescription: ${rfRules.datas[0].description}\n firstRouteFilterRulePrefix: ${rfRules.datas[0].prefix}\n firstRouteFilterRulePrefixMatch: ${rfRules.datas[0].prefixMatch}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getRouteFilterRules.\n", + "properties": { + "limit": { + "type": "integer", + "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" + }, + "offset": { + "type": "integer", + "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" + }, + "routeFilterId": { + "type": "string", + "description": "UUID of the Route Filter Policy the rule is attached to\n" + } + }, + "type": "object", + "required": [ + "routeFilterId" + ] + }, + "outputs": { + "description": "A collection of values returned by getRouteFilterRules.\n", + "properties": { + "datas": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterRulesData:getRouteFilterRulesData" + }, + "description": "The list of Rules attached to the given Route Filter Policy UUID\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "limit": { + "type": "integer", + "description": "Number of elements to be requested per page. Number must be between 1 and 100. Default is 20\n" + }, + "offset": { + "type": "integer", + "description": "The page offset for the pagination request. Index of the first element. Default is 0.\n" + }, + "paginations": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFilterRulesPagination:getRouteFilterRulesPagination" + }, + "description": "Pagination details for the Data Source Search Request\n" + }, + "routeFilterId": { + "type": "string", + "description": "UUID of the Route Filter Policy the rule is attached to\n" + } + }, + "type": "object", + "required": [ + "datas", + "paginations", + "routeFilterId", + "id" + ] + } + }, + "equinix:fabric/getRouteFilters:getRouteFilters": { + "description": "Fabric V4 API compatible data resource that allow user to fetch route filter for a given search data set\n\nAdditional Documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/FCR-route-filters.htm\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#route-filters\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@pulumi/equinix\";\n\nconst rfPolicies = equinix.fabric.getRouteFilters({\n filters: [\n {\n property: \"/type\",\n operator: \"=\",\n values: [\"BGP_IPv4_PREFIX_FILTER\"],\n },\n {\n property: \"/state\",\n operator: \"=\",\n values: [\"PROVISIONED\"],\n },\n {\n property: \"/project/projectId\",\n operator: \"=\",\n values: [\"\u003cproject_id\u003e\"],\n },\n ],\n pagination: {\n offset: 0,\n limit: 5,\n total: 25,\n },\n sorts: [{\n direction: \"ASC\",\n property: \"/name\",\n }],\n});\nexport const firstRfUuid = rfPolicies.then(rfPolicies =\u003e rfPolicies.datas?.[0]?.uuid);\nexport const type = rfPolicies.then(rfPolicies =\u003e rfPolicies.datas?.[0]?.type);\nexport const state = rfPolicies.then(rfPolicies =\u003e rfPolicies.datas?.[0]?.state);\nexport const notMatchedRuleAction = rfPolicies.then(rfPolicies =\u003e rfPolicies.datas?.[0]?.notMatchedRuleAction);\nexport const connectionsCount = rfPolicies.then(rfPolicies =\u003e rfPolicies.datas?.[0]?.connectionsCount);\nexport const rulesCount = rfPolicies.then(rfPolicies =\u003e rfPolicies.datas?.[0]?.rulesCount);\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nrf_policies = equinix.fabric.get_route_filters(filters=[\n {\n \"property\": \"/type\",\n \"operator\": \"=\",\n \"values\": [\"BGP_IPv4_PREFIX_FILTER\"],\n },\n {\n \"property\": \"/state\",\n \"operator\": \"=\",\n \"values\": [\"PROVISIONED\"],\n },\n {\n \"property\": \"/project/projectId\",\n \"operator\": \"=\",\n \"values\": [\"\u003cproject_id\u003e\"],\n },\n ],\n pagination={\n \"offset\": 0,\n \"limit\": 5,\n \"total\": 25,\n },\n sorts=[{\n \"direction\": \"ASC\",\n \"property\": \"/name\",\n }])\npulumi.export(\"firstRfUuid\", rf_policies.datas[0].uuid)\npulumi.export(\"type\", rf_policies.datas[0].type)\npulumi.export(\"state\", rf_policies.datas[0].state)\npulumi.export(\"notMatchedRuleAction\", rf_policies.datas[0].not_matched_rule_action)\npulumi.export(\"connectionsCount\", rf_policies.datas[0].connections_count)\npulumi.export(\"rulesCount\", rf_policies.datas[0].rules_count)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var rfPolicies = Equinix.Fabric.GetRouteFilters.Invoke(new()\n {\n Filters = new[]\n {\n new Equinix.Fabric.Inputs.GetRouteFiltersFilterInputArgs\n {\n Property = \"/type\",\n Operator = \"=\",\n Values = new[]\n {\n \"BGP_IPv4_PREFIX_FILTER\",\n },\n },\n new Equinix.Fabric.Inputs.GetRouteFiltersFilterInputArgs\n {\n Property = \"/state\",\n Operator = \"=\",\n Values = new[]\n {\n \"PROVISIONED\",\n },\n },\n new Equinix.Fabric.Inputs.GetRouteFiltersFilterInputArgs\n {\n Property = \"/project/projectId\",\n Operator = \"=\",\n Values = new[]\n {\n \"\u003cproject_id\u003e\",\n },\n },\n },\n Pagination = new Equinix.Fabric.Inputs.GetRouteFiltersPaginationInputArgs\n {\n Offset = 0,\n Limit = 5,\n Total = 25,\n },\n Sorts = new[]\n {\n new Equinix.Fabric.Inputs.GetRouteFiltersSortInputArgs\n {\n Direction = \"ASC\",\n Property = \"/name\",\n },\n },\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"firstRfUuid\"] = rfPolicies.Apply(getRouteFiltersResult =\u003e getRouteFiltersResult.Datas[0]?.Uuid),\n [\"type\"] = rfPolicies.Apply(getRouteFiltersResult =\u003e getRouteFiltersResult.Datas[0]?.Type),\n [\"state\"] = rfPolicies.Apply(getRouteFiltersResult =\u003e getRouteFiltersResult.Datas[0]?.State),\n [\"notMatchedRuleAction\"] = rfPolicies.Apply(getRouteFiltersResult =\u003e getRouteFiltersResult.Datas[0]?.NotMatchedRuleAction),\n [\"connectionsCount\"] = rfPolicies.Apply(getRouteFiltersResult =\u003e getRouteFiltersResult.Datas[0]?.ConnectionsCount),\n [\"rulesCount\"] = rfPolicies.Apply(getRouteFiltersResult =\u003e getRouteFiltersResult.Datas[0]?.RulesCount),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\trfPolicies, err := fabric.GetRouteFilters(ctx, \u0026fabric.GetRouteFiltersArgs{\n\t\t\tFilters: []fabric.GetRouteFiltersFilter{\n\t\t\t\t{\n\t\t\t\t\tProperty: \"/type\",\n\t\t\t\t\tOperator: \"=\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"BGP_IPv4_PREFIX_FILTER\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tProperty: \"/state\",\n\t\t\t\t\tOperator: \"=\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"PROVISIONED\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tProperty: \"/project/projectId\",\n\t\t\t\t\tOperator: \"=\",\n\t\t\t\t\tValues: []string{\n\t\t\t\t\t\t\"\u003cproject_id\u003e\",\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tPagination: fabric.GetRouteFiltersPagination{\n\t\t\t\tOffset: 0,\n\t\t\t\tLimit: 5,\n\t\t\t\tTotal: 25,\n\t\t\t},\n\t\t\tSorts: []fabric.GetRouteFiltersSort{\n\t\t\t\t{\n\t\t\t\t\tDirection: pulumi.StringRef(\"ASC\"),\n\t\t\t\t\tProperty: pulumi.StringRef(\"/name\"),\n\t\t\t\t},\n\t\t\t},\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"firstRfUuid\", rfPolicies.Datas[0].Uuid)\n\t\tctx.Export(\"type\", rfPolicies.Datas[0].Type)\n\t\tctx.Export(\"state\", rfPolicies.Datas[0].State)\n\t\tctx.Export(\"notMatchedRuleAction\", rfPolicies.Datas[0].NotMatchedRuleAction)\n\t\tctx.Export(\"connectionsCount\", rfPolicies.Datas[0].ConnectionsCount)\n\t\tctx.Export(\"rulesCount\", rfPolicies.Datas[0].RulesCount)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.FabricFunctions;\nimport com.pulumi.equinix.fabric.inputs.GetRouteFiltersArgs;\nimport com.pulumi.equinix.fabric.inputs.GetRouteFiltersPaginationArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var rfPolicies = FabricFunctions.getRouteFilters(GetRouteFiltersArgs.builder()\n .filters( \n GetRouteFiltersFilterArgs.builder()\n .property(\"/type\")\n .operator(\"=\")\n .values(\"BGP_IPv4_PREFIX_FILTER\")\n .build(),\n GetRouteFiltersFilterArgs.builder()\n .property(\"/state\")\n .operator(\"=\")\n .values(\"PROVISIONED\")\n .build(),\n GetRouteFiltersFilterArgs.builder()\n .property(\"/project/projectId\")\n .operator(\"=\")\n .values(\"\u003cproject_id\u003e\")\n .build())\n .pagination(GetRouteFiltersPaginationArgs.builder()\n .offset(0)\n .limit(5)\n .total(25)\n .build())\n .sorts(GetRouteFiltersSortArgs.builder()\n .direction(\"ASC\")\n .property(\"/name\")\n .build())\n .build());\n\n ctx.export(\"firstRfUuid\", rfPolicies.applyValue(getRouteFiltersResult -\u003e getRouteFiltersResult.datas()[0].uuid()));\n ctx.export(\"type\", rfPolicies.applyValue(getRouteFiltersResult -\u003e getRouteFiltersResult.datas()[0].type()));\n ctx.export(\"state\", rfPolicies.applyValue(getRouteFiltersResult -\u003e getRouteFiltersResult.datas()[0].state()));\n ctx.export(\"notMatchedRuleAction\", rfPolicies.applyValue(getRouteFiltersResult -\u003e getRouteFiltersResult.datas()[0].notMatchedRuleAction()));\n ctx.export(\"connectionsCount\", rfPolicies.applyValue(getRouteFiltersResult -\u003e getRouteFiltersResult.datas()[0].connectionsCount()));\n ctx.export(\"rulesCount\", rfPolicies.applyValue(getRouteFiltersResult -\u003e getRouteFiltersResult.datas()[0].rulesCount()));\n }\n}\n```\n```yaml\nvariables:\n rfPolicies:\n fn::invoke:\n Function: equinix:fabric:getRouteFilters\n Arguments:\n filters:\n - property: /type\n operator: =\n values:\n - BGP_IPv4_PREFIX_FILTER\n - property: /state\n operator: =\n values:\n - PROVISIONED\n - property: /project/projectId\n operator: =\n values:\n - \u003cproject_id\u003e\n pagination:\n offset: 0\n limit: 5\n total: 25\n sorts:\n - direction: ASC\n property: /name\noutputs:\n firstRfUuid: ${rfPolicies.datas[0].uuid}\n type: ${rfPolicies.datas[0].type}\n state: ${rfPolicies.datas[0].state}\n notMatchedRuleAction: ${rfPolicies.datas[0].notMatchedRuleAction}\n connectionsCount: ${rfPolicies.datas[0].connectionsCount}\n rulesCount: ${rfPolicies.datas[0].rulesCount}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", + "inputs": { + "description": "A collection of arguments for invoking getRouteFilters.\n", + "properties": { + "filters": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersFilter:getRouteFiltersFilter" + }, + "description": "Filters for the Data Source Search Request. Maximum of 8 total filters.\n" + }, + "pagination": { + "$ref": "#/types/equinix:fabric/getRouteFiltersPagination:getRouteFiltersPagination", + "description": "Pagination details for the Data Source Search Request\n" + }, + "sorts": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersSort:getRouteFiltersSort" + }, + "description": "Filters for the Data Source Search Request\n" + } + }, + "type": "object", + "required": [ + "filters" + ] + }, + "outputs": { + "description": "A collection of values returned by getRouteFilters.\n", + "properties": { + "datas": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersData:getRouteFiltersData" + }, + "description": "List of Route Filters\n" + }, + "filters": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersFilter:getRouteFiltersFilter" + }, + "description": "Filters for the Data Source Search Request. Maximum of 8 total filters.\n" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "pagination": { + "$ref": "#/types/equinix:fabric/getRouteFiltersPagination:getRouteFiltersPagination", + "description": "Pagination details for the Data Source Search Request\n" + }, + "sorts": { + "type": "array", + "items": { + "$ref": "#/types/equinix:fabric/getRouteFiltersSort:getRouteFiltersSort" + }, + "description": "Filters for the Data Source Search Request\n" + } + }, + "type": "object", + "required": [ + "datas", + "filters", + "id" + ] + } + }, "equinix:fabric/getRoutingProtocol:getRoutingProtocol": { "description": "Fabric V4 API compatible data resource that allow user to fetch routing protocol for a given UUID\n\nAPI documentation can be found here - https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#routing-protocols\n\nAdditional documentation:\n* Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/connections/FCR-connect-azureQC.htm#ConfigureRoutingDetailsintheFabricPortal\n* API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#routing-protocols\n\n## Example Usage\n\n\u003c!--Start PulumiCodeChooser --\u003e\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as equinix from \"@pulumi/equinix\";\n\nconst routingProtocolDataName = equinix.fabric.getRoutingProtocol({\n connectionUuid: \"\u003cuuid_of_connection_routing_protocol_is_applied_to\u003e\",\n uuid: \"\u003cuuid_of_routing_protocol\u003e\",\n});\nexport const id = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.id);\nexport const name = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.name);\nexport const type = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.type);\nexport const directIpv4 = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.directIpv4?.equinixIfaceIp);\nexport const directIpv6 = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.directIpv6?.equinixIfaceIp);\nexport const bgpIpv4CustomerPeerIp = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.bgpIpv4?.customerPeerIp);\nexport const bgpIpv4EquinixPeerIp = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.bgpIpv4?.equinixPeerIp);\nexport const bgpIpv4Enabled = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.bgpIpv4?.enabled);\nexport const bgpIpv6CustomerPeerIp = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.bgpIpv6?.customerPeerIp);\nexport const bgpIpv6EquinixPeerIp = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.bgpIpv6?.equinixPeerIp);\nexport const bgpIpv6Enabled = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.bgpIpv6?.enabled);\nexport const customerAsn = routingProtocolDataName.then(routingProtocolDataName =\u003e routingProtocolDataName.customerAsn);\n```\n```python\nimport pulumi\nimport pulumi_equinix as equinix\n\nrouting_protocol_data_name = equinix.fabric.get_routing_protocol(connection_uuid=\"\u003cuuid_of_connection_routing_protocol_is_applied_to\u003e\",\n uuid=\"\u003cuuid_of_routing_protocol\u003e\")\npulumi.export(\"id\", routing_protocol_data_name.id)\npulumi.export(\"name\", routing_protocol_data_name.name)\npulumi.export(\"type\", routing_protocol_data_name.type)\npulumi.export(\"directIpv4\", routing_protocol_data_name.direct_ipv4.equinix_iface_ip)\npulumi.export(\"directIpv6\", routing_protocol_data_name.direct_ipv6.equinix_iface_ip)\npulumi.export(\"bgpIpv4CustomerPeerIp\", routing_protocol_data_name.bgp_ipv4.customer_peer_ip)\npulumi.export(\"bgpIpv4EquinixPeerIp\", routing_protocol_data_name.bgp_ipv4.equinix_peer_ip)\npulumi.export(\"bgpIpv4Enabled\", routing_protocol_data_name.bgp_ipv4.enabled)\npulumi.export(\"bgpIpv6CustomerPeerIp\", routing_protocol_data_name.bgp_ipv6.customer_peer_ip)\npulumi.export(\"bgpIpv6EquinixPeerIp\", routing_protocol_data_name.bgp_ipv6.equinix_peer_ip)\npulumi.export(\"bgpIpv6Enabled\", routing_protocol_data_name.bgp_ipv6.enabled)\npulumi.export(\"customerAsn\", routing_protocol_data_name.customer_asn)\n```\n```csharp\nusing System.Collections.Generic;\nusing System.Linq;\nusing Pulumi;\nusing Equinix = Pulumi.Equinix;\n\nreturn await Deployment.RunAsync(() =\u003e \n{\n var routingProtocolDataName = Equinix.Fabric.GetRoutingProtocol.Invoke(new()\n {\n ConnectionUuid = \"\u003cuuid_of_connection_routing_protocol_is_applied_to\u003e\",\n Uuid = \"\u003cuuid_of_routing_protocol\u003e\",\n });\n\n return new Dictionary\u003cstring, object?\u003e\n {\n [\"id\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.Id),\n [\"name\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.Name),\n [\"type\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.Type),\n [\"directIpv4\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.DirectIpv4?.EquinixIfaceIp),\n [\"directIpv6\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.DirectIpv6?.EquinixIfaceIp),\n [\"bgpIpv4CustomerPeerIp\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.BgpIpv4?.CustomerPeerIp),\n [\"bgpIpv4EquinixPeerIp\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.BgpIpv4?.EquinixPeerIp),\n [\"bgpIpv4Enabled\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.BgpIpv4?.Enabled),\n [\"bgpIpv6CustomerPeerIp\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.BgpIpv6?.CustomerPeerIp),\n [\"bgpIpv6EquinixPeerIp\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.BgpIpv6?.EquinixPeerIp),\n [\"bgpIpv6Enabled\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.BgpIpv6?.Enabled),\n [\"customerAsn\"] = routingProtocolDataName.Apply(getRoutingProtocolResult =\u003e getRoutingProtocolResult.CustomerAsn),\n };\n});\n```\n```go\npackage main\n\nimport (\n\t\"github.com/equinix/pulumi-equinix/sdk/go/equinix/fabric\"\n\t\"github.com/pulumi/pulumi/sdk/v3/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\troutingProtocolDataName, err := fabric.LookupRoutingProtocol(ctx, \u0026fabric.LookupRoutingProtocolArgs{\n\t\t\tConnectionUuid: \"\u003cuuid_of_connection_routing_protocol_is_applied_to\u003e\",\n\t\t\tUuid: \"\u003cuuid_of_routing_protocol\u003e\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tctx.Export(\"id\", routingProtocolDataName.Id)\n\t\tctx.Export(\"name\", routingProtocolDataName.Name)\n\t\tctx.Export(\"type\", routingProtocolDataName.Type)\n\t\tctx.Export(\"directIpv4\", routingProtocolDataName.DirectIpv4.EquinixIfaceIp)\n\t\tctx.Export(\"directIpv6\", routingProtocolDataName.DirectIpv6.EquinixIfaceIp)\n\t\tctx.Export(\"bgpIpv4CustomerPeerIp\", routingProtocolDataName.BgpIpv4.CustomerPeerIp)\n\t\tctx.Export(\"bgpIpv4EquinixPeerIp\", routingProtocolDataName.BgpIpv4.EquinixPeerIp)\n\t\tctx.Export(\"bgpIpv4Enabled\", routingProtocolDataName.BgpIpv4.Enabled)\n\t\tctx.Export(\"bgpIpv6CustomerPeerIp\", routingProtocolDataName.BgpIpv6.CustomerPeerIp)\n\t\tctx.Export(\"bgpIpv6EquinixPeerIp\", routingProtocolDataName.BgpIpv6.EquinixPeerIp)\n\t\tctx.Export(\"bgpIpv6Enabled\", routingProtocolDataName.BgpIpv6.Enabled)\n\t\tctx.Export(\"customerAsn\", routingProtocolDataName.CustomerAsn)\n\t\treturn nil\n\t})\n}\n```\n```java\npackage generated_program;\n\nimport com.pulumi.Context;\nimport com.pulumi.Pulumi;\nimport com.pulumi.core.Output;\nimport com.pulumi.equinix.fabric.FabricFunctions;\nimport com.pulumi.equinix.fabric.inputs.GetRoutingProtocolArgs;\nimport java.util.List;\nimport java.util.ArrayList;\nimport java.util.Map;\nimport java.io.File;\nimport java.nio.file.Files;\nimport java.nio.file.Paths;\n\npublic class App {\n public static void main(String[] args) {\n Pulumi.run(App::stack);\n }\n\n public static void stack(Context ctx) {\n final var routingProtocolDataName = FabricFunctions.getRoutingProtocol(GetRoutingProtocolArgs.builder()\n .connectionUuid(\"\u003cuuid_of_connection_routing_protocol_is_applied_to\u003e\")\n .uuid(\"\u003cuuid_of_routing_protocol\u003e\")\n .build());\n\n ctx.export(\"id\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.id()));\n ctx.export(\"name\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.name()));\n ctx.export(\"type\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.type()));\n ctx.export(\"directIpv4\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.directIpv4().equinixIfaceIp()));\n ctx.export(\"directIpv6\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.directIpv6().equinixIfaceIp()));\n ctx.export(\"bgpIpv4CustomerPeerIp\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.bgpIpv4().customerPeerIp()));\n ctx.export(\"bgpIpv4EquinixPeerIp\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.bgpIpv4().equinixPeerIp()));\n ctx.export(\"bgpIpv4Enabled\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.bgpIpv4().enabled()));\n ctx.export(\"bgpIpv6CustomerPeerIp\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.bgpIpv6().customerPeerIp()));\n ctx.export(\"bgpIpv6EquinixPeerIp\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.bgpIpv6().equinixPeerIp()));\n ctx.export(\"bgpIpv6Enabled\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.bgpIpv6().enabled()));\n ctx.export(\"customerAsn\", routingProtocolDataName.applyValue(getRoutingProtocolResult -\u003e getRoutingProtocolResult.customerAsn()));\n }\n}\n```\n```yaml\nvariables:\n routingProtocolDataName:\n fn::invoke:\n Function: equinix:fabric:getRoutingProtocol\n Arguments:\n connectionUuid: \u003cuuid_of_connection_routing_protocol_is_applied_to\u003e\n uuid: \u003cuuid_of_routing_protocol\u003e\noutputs:\n id: ${routingProtocolDataName.id}\n name: ${routingProtocolDataName.name}\n type: ${routingProtocolDataName.type}\n directIpv4: ${routingProtocolDataName.directIpv4.equinixIfaceIp}\n directIpv6: ${routingProtocolDataName.directIpv6.equinixIfaceIp}\n bgpIpv4CustomerPeerIp: ${routingProtocolDataName.bgpIpv4.customerPeerIp}\n bgpIpv4EquinixPeerIp: ${routingProtocolDataName.bgpIpv4.equinixPeerIp}\n bgpIpv4Enabled: ${routingProtocolDataName.bgpIpv4.enabled}\n bgpIpv6CustomerPeerIp: ${routingProtocolDataName.bgpIpv6.customerPeerIp}\n bgpIpv6EquinixPeerIp: ${routingProtocolDataName.bgpIpv6.equinixPeerIp}\n bgpIpv6Enabled: ${routingProtocolDataName.bgpIpv6.enabled}\n customerAsn: ${routingProtocolDataName.customerAsn}\n```\n\u003c!--End PulumiCodeChooser --\u003e\n", "inputs": {