public MyStack() { var alternate = new Aws.Provider("alternate", new Aws.ProviderArgs { Profile = "profile1", }); var senderShare = new Aws.Ram.ResourceShare("senderShare", new Aws.Ram.ResourceShareArgs { AllowExternalPrincipals = true, Tags = { { "Name", "tf-test-resource-share" }, }, }, new CustomResourceOptions { Provider = "aws.alternate", }); var receiver = Output.Create(Aws.GetCallerIdentity.InvokeAsync()); var senderInvite = new Aws.Ram.PrincipalAssociation("senderInvite", new Aws.Ram.PrincipalAssociationArgs { Principal = receiver.Apply(receiver => receiver.AccountId), ResourceShareArn = senderShare.Arn, }, new CustomResourceOptions { Provider = "aws.alternate", }); var receiverAccept = new Aws.Ram.ResourceShareAccepter("receiverAccept", new Aws.Ram.ResourceShareAccepterArgs { ShareArn = senderInvite.ResourceShareArn, }); }
public Task <int> runDeployment() { return(Deployment.RunAsync(async() => { var provider = new Pulumi.Aws.Provider(String.Format("provider-{0}", Configuration.Region), new Pulumi.Aws.ProviderArgs { Region = Configuration.Region }); this.CustomResourceOptions = new CustomResourceOptions { Provider = provider }; this.InvokeOptions = new InvokeOptions { Provider = provider }; var role = createRedshiftRole(); var vpc = await ec2.Invokes.GetVpc(new ec2.GetVpcArgs { Id = this.Configuration.VpcId }, this.InvokeOptions); var securityGroup = createRedshiftSecurityGroup(vpc.Id, this.Configuration.PublicIp, this.Configuration.Port); var cluster = await createRedshiftCluster(this.Configuration.Port, securityGroup, role); return new Dictionary <string, object?> { { "role", role.Name }, { "securityGroup", securityGroup.Id }, { "cluster", cluster.Id } }; })); }
public MyStack() { var accepter = new Aws.Provider("accepter", new Aws.ProviderArgs { }); var accepterCallerIdentity = Output.Create(Aws.GetCallerIdentity.InvokeAsync()); // Creator's side of the VIF var creator = new Aws.DirectConnect.HostedPublicVirtualInterface("creator", new Aws.DirectConnect.HostedPublicVirtualInterfaceArgs { AddressFamily = "ipv4", AmazonAddress = "175.45.176.2/30", BgpAsn = 65352, ConnectionId = "dxcon-zzzzzzzz", CustomerAddress = "175.45.176.1/30", OwnerAccountId = accepterCallerIdentity.Apply(accepterCallerIdentity => accepterCallerIdentity.AccountId), RouteFilterPrefixes = { "210.52.109.0/24", "175.45.176.0/22", }, Vlan = 4094, }); // Accepter's side of the VIF. var accepterHostedPublicVirtualInterfaceAccepter = new Aws.DirectConnect.HostedPublicVirtualInterfaceAccepter("accepterHostedPublicVirtualInterfaceAccepter", new Aws.DirectConnect.HostedPublicVirtualInterfaceAccepterArgs { Tags = { { "Side", "Accepter" }, }, VirtualInterfaceId = creator.Id, }, new CustomResourceOptions { Provider = "aws.accepter", }); }
public MyStack() { var primary = new Aws.Provider("primary", new Aws.ProviderArgs { Region = "us-east-2", }); var secondary = new Aws.Provider("secondary", new Aws.ProviderArgs { Region = "us-west-2", }); var example = new Aws.Rds.GlobalCluster("example", new Aws.Rds.GlobalClusterArgs { GlobalClusterIdentifier = "example", }, new CustomResourceOptions { Provider = "aws.primary", }); var primaryCluster = new Aws.Rds.Cluster("primaryCluster", new Aws.Rds.ClusterArgs { EngineMode = "global", GlobalClusterIdentifier = example.Id, }, new CustomResourceOptions { Provider = "aws.primary", }); var primaryClusterInstance = new Aws.Rds.ClusterInstance("primaryClusterInstance", new Aws.Rds.ClusterInstanceArgs { ClusterIdentifier = primaryCluster.Id, }, new CustomResourceOptions { Provider = "aws.primary", }); var secondaryCluster = new Aws.Rds.Cluster("secondaryCluster", new Aws.Rds.ClusterArgs { EngineMode = "global", GlobalClusterIdentifier = example.Id, }, new CustomResourceOptions { Provider = "aws.secondary", DependsOn = { "aws_rds_cluster_instance.primary", }, }); var secondaryClusterInstance = new Aws.Rds.ClusterInstance("secondaryClusterInstance", new Aws.Rds.ClusterInstanceArgs { ClusterIdentifier = secondaryCluster.Id, }, new CustomResourceOptions { Provider = "aws.secondary", }); }
public MyStack() { var peer = new Aws.Provider("peer", new Aws.ProviderArgs { Region = "us-west-2", }); var main = new Aws.Ec2.Vpc("main", new Aws.Ec2.VpcArgs { CidrBlock = "10.0.0.0/16", }); var peerVpc = new Aws.Ec2.Vpc("peerVpc", new Aws.Ec2.VpcArgs { CidrBlock = "10.1.0.0/16", }, new CustomResourceOptions { Provider = "aws.peer", }); var peerCallerIdentity = Output.Create(Aws.GetCallerIdentity.InvokeAsync()); // Requester's side of the connection. var peerVpcPeeringConnection = new Aws.Ec2.VpcPeeringConnection("peerVpcPeeringConnection", new Aws.Ec2.VpcPeeringConnectionArgs { AutoAccept = false, PeerOwnerId = peerCallerIdentity.Apply(peerCallerIdentity => peerCallerIdentity.AccountId), PeerRegion = "us-west-2", PeerVpcId = peerVpc.Id, Tags = { { "Side", "Requester" }, }, VpcId = main.Id, }); // Accepter's side of the connection. var peerVpcPeeringConnectionAccepter = new Aws.Ec2.VpcPeeringConnectionAccepter("peerVpcPeeringConnectionAccepter", new Aws.Ec2.VpcPeeringConnectionAccepterArgs { AutoAccept = true, Tags = { { "Side", "Accepter" }, }, VpcPeeringConnectionId = peerVpcPeeringConnection.Id, }, new CustomResourceOptions { Provider = "aws.peer", }); }
public MyStack() { var local = new Aws.Provider("local", new Aws.ProviderArgs { Region = "us-east-1", }); var peer = new Aws.Provider("peer", new Aws.ProviderArgs { Region = "us-west-2", }); var peerRegion = Output.Create(Aws.GetRegion.InvokeAsync()); var localTransitGateway = new Aws.Ec2TransitGateway.TransitGateway("localTransitGateway", new Aws.Ec2TransitGateway.TransitGatewayArgs { Tags = { { "Name", "Local TGW" }, }, }, new CustomResourceOptions { Provider = aws.Local, }); var peerTransitGateway = new Aws.Ec2TransitGateway.TransitGateway("peerTransitGateway", new Aws.Ec2TransitGateway.TransitGatewayArgs { Tags = { { "Name", "Peer TGW" }, }, }, new CustomResourceOptions { Provider = aws.Peer, }); var example = new Aws.Ec2TransitGateway.PeeringAttachment("example", new Aws.Ec2TransitGateway.PeeringAttachmentArgs { PeerAccountId = peerTransitGateway.OwnerId, PeerRegion = peerRegion.Apply(peerRegion => peerRegion.Name), PeerTransitGatewayId = peerTransitGateway.Id, TransitGatewayId = localTransitGateway.Id, Tags = { { "Name", "TGW Peering Requestor" }, }, }); }
public AssumeRoleStack() { var awsConfig = new Pulumi.Config("aws"); var config = new Pulumi.Config(); var roleToAssumeARN = config.Require("roleToAssumeARN"); var provider = new Aws.Provider("privileged", new Aws.ProviderArgs { AssumeRole = new Aws.Inputs.ProviderAssumeRoleArgs { RoleArn = roleToAssumeARN, SessionName = "PulumiSession", ExternalId = "PulumiApplication" }, Region = awsConfig.Require("region"), }); var bucket = new Aws.S3.Bucket("myBucket", null, new CustomResourceOptions { Provider = provider }); }
public MyStack() { var accepter = new Aws.Provider("accepter", new Aws.ProviderArgs { }); var accepterCallerIdentity = Output.Create(Aws.GetCallerIdentity.InvokeAsync()); // Creator's side of the VIF var creator = new Aws.DirectConnect.HostedTransitVirtualInterface("creator", new Aws.DirectConnect.HostedTransitVirtualInterfaceArgs { AddressFamily = "ipv4", BgpAsn = 65352, ConnectionId = "dxcon-zzzzzzzz", OwnerAccountId = accepterCallerIdentity.Apply(accepterCallerIdentity => accepterCallerIdentity.AccountId), Vlan = 4094, }, new CustomResourceOptions { DependsOn = { "aws_dx_gateway.example", }, }); // Accepter's side of the VIF. var example = new Aws.DirectConnect.Gateway("example", new Aws.DirectConnect.GatewayArgs { AmazonSideAsn = "64512", }, new CustomResourceOptions { Provider = "aws.accepter", }); var accepterHostedTransitVirtualInterfaceAcceptor = new Aws.DirectConnect.HostedTransitVirtualInterfaceAcceptor("accepterHostedTransitVirtualInterfaceAcceptor", new Aws.DirectConnect.HostedTransitVirtualInterfaceAcceptorArgs { DxGatewayId = example.Id, Tags = { { "Side", "Accepter" }, }, VirtualInterfaceId = creator.Id, }, new CustomResourceOptions { Provider = "aws.accepter", }); }
public MyStack() { var accepter = new Aws.Provider("accepter", new Aws.ProviderArgs { }); var accepterCallerIdentity = Output.Create(Aws.GetCallerIdentity.InvokeAsync()); // Creator's side of the VIF var creator = new Aws.DirectConnect.HostedPrivateVirtualInterface("creator", new Aws.DirectConnect.HostedPrivateVirtualInterfaceArgs { AddressFamily = "ipv4", BgpAsn = 65352, ConnectionId = "dxcon-zzzzzzzz", OwnerAccountId = accepterCallerIdentity.Apply(accepterCallerIdentity => accepterCallerIdentity.AccountId), Vlan = 4094, }, new CustomResourceOptions { DependsOn = { "aws_vpn_gateway.vpn_gw", }, }); // Accepter's side of the VIF. var vpnGw = new Aws.Ec2.VpnGateway("vpnGw", new Aws.Ec2.VpnGatewayArgs { }, new CustomResourceOptions { Provider = "aws.accepter", }); var accepterHostedPrivateVirtualInterfaceAccepter = new Aws.DirectConnect.HostedPrivateVirtualInterfaceAccepter("accepterHostedPrivateVirtualInterfaceAccepter", new Aws.DirectConnect.HostedPrivateVirtualInterfaceAccepterArgs { Tags = { { "Side", "Accepter" }, }, VirtualInterfaceId = creator.Id, VpnGatewayId = vpnGw.Id, }, new CustomResourceOptions { Provider = "aws.accepter", }); }
public MyStack() { var provider = new Aws.Provider("provider", new Aws.ProviderArgs { Region = "us-west-2", }); var bucket1 = new Aws.S3.Bucket("bucket1", new Aws.S3.BucketArgs { }, new CustomResourceOptions { Provider = provider, DependsOn = { provider, }, Protect = true, IgnoreChanges = { "bucket", "lifecycleRules[0]", }, }); }
public MyStack() { var central = new Aws.Provider("central", new Aws.ProviderArgs { Region = "eu-central-1", }); var replicationRole = new Aws.Iam.Role("replicationRole", new Aws.Iam.RoleArgs { AssumeRolePolicy = @"{ ""Version"": ""2012-10-17"", ""Statement"": [ { ""Action"": ""sts:AssumeRole"", ""Principal"": { ""Service"": ""s3.amazonaws.com"" }, ""Effect"": ""Allow"", ""Sid"": """" } ] } ", }); var destination = new Aws.S3.Bucket("destination", new Aws.S3.BucketArgs { Region = "eu-west-1", Versioning = new Aws.S3.Inputs.BucketVersioningArgs { Enabled = true, }, }); var bucket = new Aws.S3.Bucket("bucket", new Aws.S3.BucketArgs { Acl = "private", Region = "eu-central-1", ReplicationConfiguration = new Aws.S3.Inputs.BucketReplicationConfigurationArgs { Role = replicationRole.Arn, Rules = { new Aws.S3.Inputs.BucketReplicationConfigurationRuleArgs { Destination = new Aws.S3.Inputs.BucketReplicationConfigurationRuleDestinationArgs { Bucket = destination.Arn, StorageClass = "STANDARD", }, Id = "foobar", Prefix = "foo", Status = "Enabled", }, }, }, Versioning = new Aws.S3.Inputs.BucketVersioningArgs { Enabled = true, }, }, new CustomResourceOptions { Provider = "aws.central", }); var replicationPolicy = new Aws.Iam.Policy("replicationPolicy", new Aws.Iam.PolicyArgs { Policy = Output.Tuple(bucket.Arn, bucket.Arn, destination.Arn).Apply(values => { var bucketArn = values.Item1; var bucketArn1 = values.Item2; var destinationArn = values.Item3; return(@$ "{{ " "Version" ": " "2012-10-17" ", " "Statement" ": [
public MyStack() { var us_east_1 = new Aws.Provider("us-east-1", new Aws.ProviderArgs { Region = "us-east-1", }); var us_west_2 = new Aws.Provider("us-west-2", new Aws.ProviderArgs { Region = "us-west-2", }); var us_east_1Table = new Aws.DynamoDB.Table("us-east-1Table", new Aws.DynamoDB.TableArgs { Attributes = { new Aws.DynamoDB.Inputs.TableAttributeArgs { Name = "myAttribute", Type = "S", }, }, HashKey = "myAttribute", ReadCapacity = 1, StreamEnabled = true, StreamViewType = "NEW_AND_OLD_IMAGES", WriteCapacity = 1, }, new CustomResourceOptions { Provider = "aws.us-east-1", }); var us_west_2Table = new Aws.DynamoDB.Table("us-west-2Table", new Aws.DynamoDB.TableArgs { Attributes = { new Aws.DynamoDB.Inputs.TableAttributeArgs { Name = "myAttribute", Type = "S", }, }, HashKey = "myAttribute", ReadCapacity = 1, StreamEnabled = true, StreamViewType = "NEW_AND_OLD_IMAGES", WriteCapacity = 1, }, new CustomResourceOptions { Provider = "aws.us-west-2", }); var myTable = new Aws.DynamoDB.GlobalTable("myTable", new Aws.DynamoDB.GlobalTableArgs { Replicas = { new Aws.DynamoDB.Inputs.GlobalTableReplicaArgs { RegionName = "us-east-1", }, new Aws.DynamoDB.Inputs.GlobalTableReplicaArgs { RegionName = "us-west-2", }, }, }, new CustomResourceOptions { Provider = "aws.us-east-1", DependsOn = { "aws_dynamodb_table.us-east-1", "aws_dynamodb_table.us-west-2", }, }); }
public MyStack() { var us_east_1 = new Aws.Provider("us-east-1", new Aws.ProviderArgs { Region = "us-east-1", }); var awsRoute53ExampleCom = new Aws.CloudWatch.LogGroup("awsRoute53ExampleCom", new Aws.CloudWatch.LogGroupArgs { RetentionInDays = 30, }, new CustomResourceOptions { Provider = "aws.us-east-1", }); var route53_query_logging_policyPolicyDocument = Output.Create(Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs { Statements = { new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs { Actions = { "logs:CreateLogStream", "logs:PutLogEvents", }, Principals = { new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs { Identifiers = { "route53.amazonaws.com", }, Type = "Service", }, }, Resources = { "arn:aws:logs:*:*:log-group:/aws/route53/*", }, }, }, })); var route53_query_logging_policyLogResourcePolicy = new Aws.CloudWatch.LogResourcePolicy("route53-query-logging-policyLogResourcePolicy", new Aws.CloudWatch.LogResourcePolicyArgs { PolicyDocument = route53_query_logging_policyPolicyDocument.Apply(route53_query_logging_policyPolicyDocument => route53_query_logging_policyPolicyDocument.Json), PolicyName = "route53-query-logging-policy", }, new CustomResourceOptions { Provider = "aws.us-east-1", }); var exampleComZone = new Aws.Route53.Zone("exampleComZone", new Aws.Route53.ZoneArgs { }); var exampleComQueryLog = new Aws.Route53.QueryLog("exampleComQueryLog", new Aws.Route53.QueryLogArgs { CloudwatchLogGroupArn = awsRoute53ExampleCom.Arn, ZoneId = exampleComZone.ZoneId, }, new CustomResourceOptions { DependsOn = { "aws_cloudwatch_log_resource_policy.route53-query-logging-policy", }, }); }