Esempio n. 1
0
 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,
     });
 }
Esempio n. 2
0
    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 }
            };
        }));
    }
Esempio n. 3
0
 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",
     });
 }
Esempio n. 4
0
 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",
     });
 }
Esempio n. 5
0
 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",
     });
 }
Esempio n. 6
0
 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" },
         },
     });
 }
Esempio n. 7
0
 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
     });
 }
Esempio n. 8
0
 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",
     });
 }
Esempio n. 9
0
 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",
     });
 }
Esempio n. 10
0
 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]",
         },
     });
 }
Esempio n. 11
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" ": [
Esempio n. 12
0
 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",
         },
     });
 }
Esempio n. 13
0
 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",
         },
     });
 }