com.equinix.pulumi.fabric.RoutingProtocol Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of equinix Show documentation
Show all versions of equinix Show documentation
A Pulumi package for creating and managing equinix cloud resources.
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***
package com.equinix.pulumi.fabric;
import com.equinix.pulumi.Utilities;
import com.equinix.pulumi.fabric.RoutingProtocolArgs;
import com.equinix.pulumi.fabric.inputs.RoutingProtocolState;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolBfd;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolBgpIpv4;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolBgpIpv6;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolChange;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolChangeLog;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolDirectIpv4;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolDirectIpv6;
import com.equinix.pulumi.fabric.outputs.RoutingProtocolOperation;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Integer;
import java.lang.String;
import java.util.List;
import javax.annotation.Nullable;
/**
* Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection
*
* Additional documentation:
* * Getting Started: https://docs.equinix.com/en-us/Content/Interconnection/FCR/connections/FCR-connect-azureQC.htm#ConfigureRoutingDetailsintheFabricPortal
* * API: https://developer.equinix.com/dev-docs/fabric/api-reference/fabric-v4-apis#routing-protocols
*
* ## Example Usage
* ### example 1
*
* {@code
* package generated_program;
*
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.equinix.fabric.RoutingProtocol;
* import com.pulumi.equinix.fabric.RoutingProtocolArgs;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolDirectIpv4Args;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolDirectIpv6Args;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
*
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
*
* public static void stack(Context ctx) {
* var direct = new RoutingProtocol("direct", RoutingProtocolArgs.builder()
* .connectionUuid("")
* .type("DIRECT")
* .name("direct_rp")
* .directIpv4(RoutingProtocolDirectIpv4Args.builder()
* .equinixIfaceIp("190.1.1.1/30")
* .build())
* .directIpv6(RoutingProtocolDirectIpv6Args.builder()
* .equinixIfaceIp("190::1:1/126")
* .build())
* .build());
*
* }
* }
* }
*
* ### example 2
*
* {@code
* package generated_program;
*
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.equinix.fabric.RoutingProtocol;
* import com.pulumi.equinix.fabric.RoutingProtocolArgs;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolBgpIpv4Args;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolBgpIpv6Args;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
*
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
*
* public static void stack(Context ctx) {
* var bgp = new RoutingProtocol("bgp", RoutingProtocolArgs.builder()
* .connectionUuid("")
* .type("BGP")
* .name("bgp_rp")
* .bgpIpv4(RoutingProtocolBgpIpv4Args.builder()
* .customerPeerIp("190.1.1.2")
* .enabled(true)
* .build())
* .bgpIpv6(RoutingProtocolBgpIpv6Args.builder()
* .customerPeerIp("190::1:2")
* .enabled(true)
* .build())
* .customerAsn(4532)
* .build());
*
* }
* }
* }
*
* ### example 3
*
* {@code
* package generated_program;
*
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.equinix.fabric.RoutingProtocol;
* import com.pulumi.equinix.fabric.RoutingProtocolArgs;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolDirectIpv4Args;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolDirectIpv6Args;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolBgpIpv4Args;
* import com.pulumi.equinix.fabric.inputs.RoutingProtocolBgpIpv6Args;
* import com.pulumi.resources.CustomResourceOptions;
* import java.util.List;
* import java.util.ArrayList;
* import java.util.Map;
* import java.io.File;
* import java.nio.file.Files;
* import java.nio.file.Paths;
*
* public class App {
* public static void main(String[] args) {
* Pulumi.run(App::stack);
* }
*
* public static void stack(Context ctx) {
* var direct = new RoutingProtocol("direct", RoutingProtocolArgs.builder()
* .connectionUuid("")
* .type("DIRECT")
* .name("direct_rp")
* .directIpv4(RoutingProtocolDirectIpv4Args.builder()
* .equinixIfaceIp("190.1.1.1/30")
* .build())
* .directIpv6(RoutingProtocolDirectIpv6Args.builder()
* .equinixIfaceIp("190::1:1/126")
* .build())
* .build());
*
* var bgp = new RoutingProtocol("bgp", RoutingProtocolArgs.builder()
* .connectionUuid("")
* .type("BGP")
* .name("bgp_rp")
* .bgpIpv4(RoutingProtocolBgpIpv4Args.builder()
* .customerPeerIp("190.1.1.2")
* .enabled(true)
* .build())
* .bgpIpv6(RoutingProtocolBgpIpv6Args.builder()
* .customerPeerIp("190::1:2")
* .enabled(true)
* .build())
* .customerAsn(4532)
* .build(), CustomResourceOptions.builder()
* .dependsOn(direct)
* .build());
*
* }
* }
* }
*
*
*/
@ResourceType(type="equinix:fabric/routingProtocol:RoutingProtocol")
public class RoutingProtocol extends com.pulumi.resources.CustomResource {
/**
* Bidirectional Forwarding Detection
*
*/
@Export(name="bfd", refs={RoutingProtocolBfd.class}, tree="[0]")
private Output bfd;
/**
* @return Bidirectional Forwarding Detection
*
*/
public Output bfd() {
return this.bfd;
}
/**
* BGP authorization key
*
*/
@Export(name="bgpAuthKey", refs={String.class}, tree="[0]")
private Output bgpAuthKey;
/**
* @return BGP authorization key
*
*/
public Output bgpAuthKey() {
return this.bgpAuthKey;
}
/**
* Routing Protocol BGP IPv4
*
*/
@Export(name="bgpIpv4", refs={RoutingProtocolBgpIpv4.class}, tree="[0]")
private Output bgpIpv4;
/**
* @return Routing Protocol BGP IPv4
*
*/
public Output bgpIpv4() {
return this.bgpIpv4;
}
/**
* Routing Protocol BGP IPv6
*
*/
@Export(name="bgpIpv6", refs={RoutingProtocolBgpIpv6.class}, tree="[0]")
private Output bgpIpv6;
/**
* @return Routing Protocol BGP IPv6
*
*/
public Output bgpIpv6() {
return this.bgpIpv6;
}
/**
* Captures Routing Protocol lifecycle change information
*
*/
@Export(name="changeLogs", refs={List.class,RoutingProtocolChangeLog.class}, tree="[0,1]")
private Output> changeLogs;
/**
* @return Captures Routing Protocol lifecycle change information
*
*/
public Output> changeLogs() {
return this.changeLogs;
}
/**
* Routing Protocol configuration Changes
*
*/
@Export(name="changes", refs={List.class,RoutingProtocolChange.class}, tree="[0,1]")
private Output> changes;
/**
* @return Routing Protocol configuration Changes
*
*/
public Output> changes() {
return this.changes;
}
/**
* Connection URI associated with Routing Protocol
*
*/
@Export(name="connectionUuid", refs={String.class}, tree="[0]")
private Output connectionUuid;
/**
* @return Connection URI associated with Routing Protocol
*
*/
public Output connectionUuid() {
return this.connectionUuid;
}
/**
* Customer-provided ASN
*
*/
@Export(name="customerAsn", refs={Integer.class}, tree="[0]")
private Output customerAsn;
/**
* @return Customer-provided ASN
*
*/
public Output customerAsn() {
return this.customerAsn;
}
/**
* Customer-provided Fabric Routing Protocol description
*
*/
@Export(name="description", refs={String.class}, tree="[0]")
private Output description;
/**
* @return Customer-provided Fabric Routing Protocol description
*
*/
public Output description() {
return this.description;
}
/**
* Routing Protocol Direct IPv4
*
*/
@Export(name="directIpv4", refs={RoutingProtocolDirectIpv4.class}, tree="[0]")
private Output directIpv4;
/**
* @return Routing Protocol Direct IPv4
*
*/
public Output directIpv4() {
return this.directIpv4;
}
/**
* Routing Protocol Direct IPv6
*
*/
@Export(name="directIpv6", refs={RoutingProtocolDirectIpv6.class}, tree="[0]")
private Output directIpv6;
/**
* @return Routing Protocol Direct IPv6
*
*/
public Output directIpv6() {
return this.directIpv6;
}
/**
* Equinix ASN
*
*/
@Export(name="equinixAsn", refs={Integer.class}, tree="[0]")
private Output equinixAsn;
/**
* @return Equinix ASN
*
*/
public Output equinixAsn() {
return this.equinixAsn;
}
/**
* Routing Protocol URI information
*
*/
@Export(name="href", refs={String.class}, tree="[0]")
private Output href;
/**
* @return Routing Protocol URI information
*
*/
public Output href() {
return this.href;
}
/**
* Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores
*
*/
@Export(name="name", refs={String.class}, tree="[0]")
private Output name;
/**
* @return Routing Protocol name. An alpha-numeric 24 characters string which can include only hyphens and underscores
*
*/
public Output name() {
return this.name;
}
/**
* Routing Protocol type-specific operational data
*
*/
@Export(name="operations", refs={List.class,RoutingProtocolOperation.class}, tree="[0,1]")
private Output> operations;
/**
* @return Routing Protocol type-specific operational data
*
*/
public Output> operations() {
return this.operations;
}
/**
* Routing Protocol overall state
*
*/
@Export(name="state", refs={String.class}, tree="[0]")
private Output state;
/**
* @return Routing Protocol overall state
*
*/
public Output state() {
return this.state;
}
/**
* Defines the routing protocol type like BGP or DIRECT
*
*/
@Export(name="type", refs={String.class}, tree="[0]")
private Output type;
/**
* @return Defines the routing protocol type like BGP or DIRECT
*
*/
public Output type() {
return this.type;
}
/**
* Equinix-assigned routing protocol identifier
*
*/
@Export(name="uuid", refs={String.class}, tree="[0]")
private Output uuid;
/**
* @return Equinix-assigned routing protocol identifier
*
*/
public Output uuid() {
return this.uuid;
}
/**
*
* @param name The _unique_ name of the resulting resource.
*/
public RoutingProtocol(java.lang.String name) {
this(name, RoutingProtocolArgs.Empty);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
*/
public RoutingProtocol(java.lang.String name, RoutingProtocolArgs args) {
this(name, args, null);
}
/**
*
* @param name The _unique_ name of the resulting resource.
* @param args The arguments to use to populate this resource's properties.
* @param options A bag of options that control this resource's behavior.
*/
public RoutingProtocol(java.lang.String name, RoutingProtocolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("equinix:fabric/routingProtocol:RoutingProtocol", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
}
private RoutingProtocol(java.lang.String name, Output id, @Nullable RoutingProtocolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
super("equinix:fabric/routingProtocol:RoutingProtocol", name, state, makeResourceOptions(options, id), false);
}
private static RoutingProtocolArgs makeArgs(RoutingProtocolArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
if (options != null && options.getUrn().isPresent()) {
return null;
}
return args == null ? RoutingProtocolArgs.Empty : args;
}
private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) {
var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder()
.version(Utilities.getVersion())
.build();
return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id);
}
/**
* Get an existing Host resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state
* @param options Optional settings to control the behavior of the CustomResource.
*/
public static RoutingProtocol get(java.lang.String name, Output id, @Nullable RoutingProtocolState state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
return new RoutingProtocol(name, id, state, options);
}
}