Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.aws.ec2transitgateway.kotlin
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.Deprecated
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
/**
* Builder for [ConnectPeer].
*/
@PulumiTagMarker
public class ConnectPeerResourceBuilder internal constructor() {
public var name: String? = null
public var args: ConnectPeerArgs = ConnectPeerArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend ConnectPeerArgsBuilder.() -> Unit) {
val builder = ConnectPeerArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): ConnectPeer {
val builtJavaResource = com.pulumi.aws.ec2transitgateway.ConnectPeer(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return ConnectPeer(builtJavaResource)
}
}
/**
* Manages an EC2 Transit Gateway Connect Peer.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as aws from "@pulumi/aws";
* const example = new aws.ec2transitgateway.Connect("example", {
* transportAttachmentId: exampleAwsEc2TransitGatewayVpcAttachment.id,
* transitGatewayId: exampleAwsEc2TransitGateway.id,
* });
* const exampleConnectPeer = new aws.ec2transitgateway.ConnectPeer("example", {
* peerAddress: "10.1.2.3",
* insideCidrBlocks: ["169.254.100.0/29"],
* transitGatewayAttachmentId: example.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_aws as aws
* example = aws.ec2transitgateway.Connect("example",
* transport_attachment_id=example_aws_ec2_transit_gateway_vpc_attachment["id"],
* transit_gateway_id=example_aws_ec2_transit_gateway["id"])
* example_connect_peer = aws.ec2transitgateway.ConnectPeer("example",
* peer_address="10.1.2.3",
* inside_cidr_blocks=["169.254.100.0/29"],
* transit_gateway_attachment_id=example.id)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Aws = Pulumi.Aws;
* return await Deployment.RunAsync(() =>
* {
* var example = new Aws.Ec2TransitGateway.Connect("example", new()
* {
* TransportAttachmentId = exampleAwsEc2TransitGatewayVpcAttachment.Id,
* TransitGatewayId = exampleAwsEc2TransitGateway.Id,
* });
* var exampleConnectPeer = new Aws.Ec2TransitGateway.ConnectPeer("example", new()
* {
* PeerAddress = "10.1.2.3",
* InsideCidrBlocks = new[]
* {
* "169.254.100.0/29",
* },
* TransitGatewayAttachmentId = example.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2transitgateway"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* example, err := ec2transitgateway.NewConnect(ctx, "example", &ec2transitgateway.ConnectArgs{
* TransportAttachmentId: pulumi.Any(exampleAwsEc2TransitGatewayVpcAttachment.Id),
* TransitGatewayId: pulumi.Any(exampleAwsEc2TransitGateway.Id),
* })
* if err != nil {
* return err
* }
* _, err = ec2transitgateway.NewConnectPeer(ctx, "example", &ec2transitgateway.ConnectPeerArgs{
* PeerAddress: pulumi.String("10.1.2.3"),
* InsideCidrBlocks: pulumi.StringArray{
* pulumi.String("169.254.100.0/29"),
* },
* TransitGatewayAttachmentId: example.ID(),
* })
* if err != nil {
* return err
* }
* return nil
* })
* }
* ```
* ```java
* package generated_program;
* import com.pulumi.Context;
* import com.pulumi.Pulumi;
* import com.pulumi.core.Output;
* import com.pulumi.aws.ec2transitgateway.Connect;
* import com.pulumi.aws.ec2transitgateway.ConnectArgs;
* import com.pulumi.aws.ec2transitgateway.ConnectPeer;
* import com.pulumi.aws.ec2transitgateway.ConnectPeerArgs;
* 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 example = new Connect("example", ConnectArgs.builder()
* .transportAttachmentId(exampleAwsEc2TransitGatewayVpcAttachment.id())
* .transitGatewayId(exampleAwsEc2TransitGateway.id())
* .build());
* var exampleConnectPeer = new ConnectPeer("exampleConnectPeer", ConnectPeerArgs.builder()
* .peerAddress("10.1.2.3")
* .insideCidrBlocks("169.254.100.0/29")
* .transitGatewayAttachmentId(example.id())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: aws:ec2transitgateway:Connect
* properties:
* transportAttachmentId: ${exampleAwsEc2TransitGatewayVpcAttachment.id}
* transitGatewayId: ${exampleAwsEc2TransitGateway.id}
* exampleConnectPeer:
* type: aws:ec2transitgateway:ConnectPeer
* name: example
* properties:
* peerAddress: 10.1.2.3
* insideCidrBlocks:
* - 169.254.100.0/29
* transitGatewayAttachmentId: ${example.id}
* ```
*
* ## Import
* Using `pulumi import`, import `aws_ec2_transit_gateway_connect_peer` using the EC2 Transit Gateway Connect Peer identifier. For example:
* ```sh
* $ pulumi import aws:ec2transitgateway/connectPeer:ConnectPeer example tgw-connect-peer-12345678
* ```
*/
public class ConnectPeer internal constructor(
override val javaResource: com.pulumi.aws.ec2transitgateway.ConnectPeer,
) : KotlinCustomResource(javaResource, ConnectPeerMapper) {
/**
* EC2 Transit Gateway Connect Peer ARN
*/
public val arn: Output
get() = javaResource.arn().applyValue({ args0 -> args0 })
/**
* The BGP ASN number assigned customer device. If not provided, it will use the same BGP ASN as is associated with Transit Gateway.
*/
public val bgpAsn: Output
get() = javaResource.bgpAsn().applyValue({ args0 -> args0 })
/**
* The IP address assigned to customer device, which is used as BGP IP address.
*/
public val bgpPeerAddress: Output
get() = javaResource.bgpPeerAddress().applyValue({ args0 -> args0 })
/**
* The IP addresses assigned to Transit Gateway, which are used as BGP IP addresses.
*/
public val bgpTransitGatewayAddresses: Output>
get() = javaResource.bgpTransitGatewayAddresses().applyValue({ args0 ->
args0.map({ args0 ->
args0
})
})
/**
* The CIDR block that will be used for addressing within the tunnel. It must contain exactly one IPv4 CIDR block and up to one IPv6 CIDR block. The IPv4 CIDR block must be /29 size and must be within 169.254.0.0/16 range, with exception of: 169.254.0.0/29, 169.254.1.0/29, 169.254.2.0/29, 169.254.3.0/29, 169.254.4.0/29, 169.254.5.0/29, 169.254.169.248/29. The IPv6 CIDR block must be /125 size and must be within fd00::/8. The first IP from each CIDR block is assigned for customer gateway, the second and third is for Transit Gateway (An example: from range 169.254.100.0/29, .1 is assigned to customer gateway and .2 and .3 are assigned to Transit Gateway)
*/
public val insideCidrBlocks: Output>
get() = javaResource.insideCidrBlocks().applyValue({ args0 -> args0.map({ args0 -> args0 }) })
/**
* The IP addressed assigned to customer device, which will be used as tunnel endpoint. It can be IPv4 or IPv6 address, but must be the same address family as `transit_gateway_address`
*/
public val peerAddress: Output
get() = javaResource.peerAddress().applyValue({ args0 -> args0 })
/**
* Key-value tags for the EC2 Transit Gateway Connect Peer. If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
*/
public val tags: Output